我想做的是:
网上的每篇文章都告诉您这样做:
<authentication mode="Windows"/>
<identity impersonate="true"/>
在Web.config中。但是,如果您希望用户使用Windows身份验证登录,我认为这只是 。它与登录到SQL Server的服务器无关(除了上述2的组合意味着用户的身份验证也将用于连接到数据库)。它是否正确?鉴于我的Windows帐户可以访问服务器上的文件以及该站点连接的数据库,这似乎很难测试....
似乎如果我:
然后该站点将通过Windows身份验证连接到SQL Server。此外,只要模拟已关闭,它就会使用域帐户。这是对的吗?
答案 0 :(得分:2)
在Web.config中。但是,我收集到了 这仅在您希望用户登录时才有效 使用Windows身份验证。它有 与服务器日志记录无关 进入SQL Server
这是部分正确的。如果正确设置了委派,则模拟帐户将用于登录SQL Server。您没有看到这一点,因为在大多数环境中,需要明确设置委派。委派是一种更强大的模拟形式,它使服务器进程(在您的情况下,IIS进程)可以在充当客户端时访问远程资源(在您的情况下,SQL服务器)。有关详细信息,您可以谷歌ASP.NET委派。我说这部分是正确的,因为在一些简单的环境中,你甚至不需要任何特殊的配置。代表团正在努力。例如,如果您在与IIS服务器相同的计算机上运行SQL Server。另一种情况是您的IIS服务器在Active Directory域控制器上运行(非常罕见)。在这两种情况下,或者在配置正确的委托的机器上,您的上述陈述将是错误的。
似乎如果我:
然后是网站 将通过Windows连接到SQL Server 验证。此外,它将使用 域帐户只要 冒充了。这是对的吗?
- 将应用程序池标识设置为 域帐户
- 启用匿名 使用域访问网站 帐户
- 使用连接字符串 Windows身份验证
是的,这是正确的。
鉴于我的Windows帐户已经存在 访问服务器上的文件和 站点正在连接的数据库 来,这似乎很难测试......
如果您有两个域帐户(或一个域帐户和一个本地帐户),则可以轻松测试。设置应用程序池标识以使用您的DomainAccount1。仅授予 DomainAccount1以获得访问数据库的权限。使用其他帐户(域帐户或本地帐户)访问其他计算机上的Web应用程序。测试Web应用程序是否可以正确访问您的数据库。
答案 1 :(得分:1)
如果我正确地关注你,你是对的;您不想要使用模拟/身份验证来执行您想要执行的操作。适当地设置应用程序池标识,并确保用户帐户具有对SQL Server的适当访问权限。
答案 2 :(得分:0)
您可以创建单独的Sql登录,即用户名/密码,而不是使用Windows帐户,而是在连接字符串中使用它。