我有一个使用Windows身份验证和SqlRoleManager提供程序的ASP.NET MVC3应用程序。我正在尝试连接到具有集成安全性的数据库。数据库团队要求授权每个用户使用Windows身份验证而不是可用于Web应用程序的简单用户名和密码来使用数据库。我使用下面的代码,发现主体实际上是应用程序池用户。如何将会话附加到当前的Windows用户?这甚至可能吗?
WindowsIdentity identity = WindowsIdentity.GetCurrent();
Response.Write(identity.Name);
答案 0 :(得分:1)
有些事情要尝试:
与this question类似。
摘自MSDN Article:
Context.User.Identity.Name属性返回经过身份验证的 用户的身份。当应用程序在IIS 7中运行并进行模拟时 如果禁用,Environment.UserName属性将返回标识 运行Web应用程序的应用程序池 例如,如果网站在默认应用程序池中运行, 将显示名称DefaultAppPool。如果是ASP.NET v4.0应用程序 使用池,显示ASP.NET v4.0。
答案 1 :(得分:1)
我们在msdn上有关于此的帖子
http://msdn.microsoft.com/en-us/library/bsz5788z(v=vs.100).aspx