Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在ASP.NET MVC3中使用受信任连接连接到数据库?_C#_Asp.net Mvc_Asp.net Mvc 3 - Fatal编程技术网

C# 如何在ASP.NET MVC3中使用受信任连接连接到数据库?

C# 如何在ASP.NET MVC3中使用受信任连接连接到数据库?,c#,asp.net-mvc,asp.net-mvc-3,C#,Asp.net Mvc,Asp.net Mvc 3,我有一个ASP.NET MVC3应用程序,它使用Windows身份验证和SqlRoleManager提供程序。我正在尝试连接到具有集成安全性的数据库。数据库团队要求授权每个用户使用Windows身份验证而不是可用于web应用程序的简单用户名和密码来使用数据库。我使用了下面的代码,发现负责人实际上是应用程序池用户。如何将会话附加到当前windows用户?这可能吗 WindowsIdentity identity = WindowsIdentity.GetCurrent(); Response.Wr

我有一个ASP.NET MVC3应用程序,它使用Windows身份验证和SqlRoleManager提供程序。我正在尝试连接到具有集成安全性的数据库。数据库团队要求授权每个用户使用Windows身份验证而不是可用于web应用程序的简单用户名和密码来使用数据库。我使用了下面的代码,发现负责人实际上是应用程序池用户。如何将会话附加到当前windows用户?这可能吗

WindowsIdentity identity = WindowsIdentity.GetCurrent();
Response.Write(identity.Name);
有些事情可以尝试:

  • 通过标识.config节点在.config中启用模拟
  • 通过WindowsImpersonationContext在数据库访问周围的代码中执行模拟(从未尝试过-慢?)
  • 检查Context.User.Identity.Name(不确定这是否完全满足您的需要)
类似于

摘录自:

Context.User.Identity.Name属性返回经过身份验证的 用户的身份。应用程序在IIS 7中运行时,以及模拟 如果已禁用,则Environment.UserName属性将返回 运行Web应用程序的应用程序池。对于 例如,如果网站在默认应用程序池中运行, 将显示名称DefaultAppPool。如果ASP.NET v4.0应用程序 使用池时,将显示ASP.NET v4.0


关于这一点,我们在msdn上有一个帖子


是否正在更改运行应用程序池的用户而不是选项?我只是在web.config中将模拟设置为true,现在我遇到了另一个错误:不支持NTLM身份验证令牌来自Adam的链接对NTLM令牌问题有很好的指导。