我在MVC 4中有一个网站,在IIS7上运行.net 4.5 例如:www.mysite.com和文件夹www.mysite.com/admin
www.mysite.com正在使用表单身份验证并允许匿名访问某些页面,我希望使用www.mysite.com/admin使用窗口身份验证。我在IIS安全性中为该文件夹设置了使用窗口身份验证(它不是IIS中的应用程序)
在我的管理员控制器中,我需要从域中捕获用户名,并且它始终为空,代码如下:
WindowsIdentity winId = WindowsIdentity.GetCurrent();
if (winId != null)
{
string name = winId.Name;
}
User.Identity.Name也是空的 请让我知道我错过了什么。
我确信这是非常常见的事情,并且无法弄清楚为什么它不能与MVC一起工作,我有旧网站使用网页表单并且具有相同的设置并且它正在工作。
提前致谢
答案 0 :(得分:3)
如果您对该页面使用Windows身份验证,请尝试以下操作,看看它是否有任何数据。听起来你可能已经试过这个,但我没有看到包含的Page对象。
确保您的web.config启用了Windows身份验证。
<authentication mode="Windows">
</authentication>
string user = Page.User.Identity.Name;
希望这有助于我可能会研究内置角色和会员资格功能,我不熟悉您道歉的路线。
http://www.codeproject.com/Articles/342061/Understanding-ASP-NET-Roles-and-Membership-A-Begin