IIS应用程序池身份验证与Windows账户的区别

9

使用IIS内置的应用程序池标识与指定Windows账户相比,有哪些优点和缺点?

对于SQL Server,如果想要使用Windows身份验证从.Net应用程序连接,我推测如果我使用应用程序池标识,则必须将其与SQL Server中的用户关联或给予该应用程序池标识访问我的数据库的权限?

应用程序池标识只是为了方便添加的吗,因为你不必为你的应用程序池设置账户?

2个回答

7

使用的内置账户是特定于计算机的。如果应用程序池中的应用程序需要连接网络上的其他资源(例如数据库服务器、文件共享等),则使用(Windows)域帐户可能是更好的选择。当您指定一个域帐户时,必须确保它们在IIS使用的物理文件夹上设置了正确的文件权限。在较新的操作系统中,您可以将此帐户添加到IIS_IUSRS组中以实现默认权限。


0
我们的intranet上运行了几个应用程序,这些应用程序使用Windows身份验证。我们在web.config中处理此问题的方式是将SQL连接字符串指定为以下内容:
<connectionStrings>
    <add name="ConnectionStringName" connectionString="Data Source=ServerName;Initial Catalog=DatabaseName;Trusted_Connection=true" providerName="System.Data.SqlClient"/>
</connectionStrings>

同时在 web.config 文件中也有以下内容:

<system.web>
    <authentication mode="Windows"/>
    <identity impersonate="true" username="Domain\Username" password="password"/>
</system.web>

使用域帐户可以让您以与管理其他用户帐户相同的方式来管理该帐户。这里的缺点是用户名和密码以明文形式包含在 Web 配置文件中。

希望这会有所帮助。


6
我认为这不是一个好的方法。你应该设置它使用"pass through",这样你就永远不需要在代码/配置文件中存储Windows域帐户密码。 - tsells
如果应用程序池使用Windows域帐户,那么这将是通过连接字符串传递给SQL Server的帐户,就像rhoadsce使用的一样,对吗?那么是否需要模拟用户? - Remotec

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接