如何在ASP.NET MVC3中使用可信连接连接到数据库?

时间:2013-12-06 15:57:54

标签: c# asp.net-mvc asp.net-mvc-3

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

WindowsIdentity identity = WindowsIdentity.GetCurrent();
Response.Write(identity.Name);

2 个答案:

答案 0 :(得分:1)

有些事情要尝试:

  • 通过身份 .config node
  • 打开.config中的模拟
  • 通过WindowsImpersonationContext在数据库访问周围执行模拟(从未尝试过 - 慢?)
  • 浏览Context.User.Identity.Name(不确定这是否能完全满足您的需求)。

this question类似。

摘自MSDN Article

  

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

答案 1 :(得分:1)

相关问题