【问题标题】:Which identity is being used and authenticated while connection to SQL Server with Windows Authentication?在使用 Windows 身份验证连接到 SQL Server 时,正在使用和验证哪个身份?
【发布时间】:2011-12-11 12:13:11
【问题描述】:

SQL Server Windows 身份验证使用应用程序的进程标识或线程标识进行连接。因此对于 ASP.NET 应用程序,将使用哪个身份进行连接

  1. 当前用户身份
  2. 应用程序池标识
  3. 进程标识

还是其他身份?!

【问题讨论】:

  • 这取决于在连接字符串中传递的凭据。可以使用模拟,从而允许当前用户,如果您为应用程序传递特定的用户名/通行证,它可以使用应用程序身份;无论如何,在代码中控制用户正在连接的内容。如果您有一个应用程序池,那么它应该是一个通用用户/通行证;因为一旦个人离开,当它关闭与池的连接时,它就无法保留他们的凭据。
  • 连接字符串中没有传递凭据。它只是 Windows 身份验证。

标签: asp.net sql-server windows-authentication


【解决方案1】:

这真的取决于您的 IIS 网站配置。

默认情况下,如果您禁用匿名访问,它将使用应用程序池的身份。但是如果你用Impersonation=true配置你的应用程序,那么它将使用你的用户身份described

示例中说明的配置使整个应用程序能够使用 contoso\Jane 身份运行,而不管请求的身份如何。这种类型的模拟可以委托给另一台计算机。也就是说,如果您为模拟用户指定用户名和密码,您可以使用集成安全性连接到网络上的另一台计算机并请求资源,例如文件或访问 SQL Server。如果您启用模拟并且没有指定域帐户作为身份,您将无法连接到网络上的另一台计算机,除非您的 IIS 应用程序配置为使用基本身份验证。

查看MSDN article中的所有详细信息。

【讨论】:

    猜你喜欢
    • 2013-09-07
    • 2011-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多