SqlConnection集成安全

本文关键字:安全 集成 SqlConnection | 更新日期: 2023-09-27 18:02:36

我有一个在IIS内的Windows服务器上运行的web应用程序。这个应用程序正在使用Windows身份验证。我试图使用c# SqlConnection,因为我需要使用TVP调用存储过程,但我遇到了登录问题。

错误是

用户NT AUTHORITY'ANONYMOUS登录失败

但是我的HttpContext.Current.Identity是我的Windows帐户。

using (var conn = new SqlConnection(connection))
{
    conn.Open();
}

如果我使用实体框架:

using (var context = new DatabaseEntities())
{
  ...       
}

我很好奇为什么在标准c# SqlConnection中,它不使用Windows身份,但在实体框架连接中,它确实如此。任何帮助吗?

SqlConnection集成安全

要在进行数据库调用时使用HttpContext.Current.Identity,您需要启用模拟。这将更改asp.net进程以模拟您运行。

要启用该功能,请添加以下内容到系统中。Web .config的Web节点:

<identity impersonate="true"/>

您可以在https://msdn.microsoft.com/en-us/library/xh507fc5.aspx找到更多信息