获得正确的User.Identity

时间:2013-07-23 20:38:19

标签: asp.net-mvc

我在使用MVC HttpContext.User.Identity时遇到了一点麻烦我收到了system.security.principal.windowsIdentity并且它给了我Windows用户的名字...我不希望这样,我想得到(起初)null User.Identity所以我可以使用FormsAuthentication。如何阻止mvc使用此system.security.principal.windowsIdentity来显示正确的User.Identity?任何帮助将不胜感激

    public ActionResult Index()
    {
        var s = HttpContext.User.Identity.Name; //
        return View();
    }

3 个答案:

答案 0 :(得分:2)

在您的web.config文件的<system.web>部分中,更改为表单身份验证。

<authentication mode="Forms">
     <forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>

答案 1 :(得分:1)

这是因为您启用了Windows身份验证。您可能与您的网络服务器位于同一个域中,因此它会自动验证您的身份。将其关闭或明确说明您的配置中的身份验证。

答案 2 :(得分:0)

检查web.config以确保<authentication mode="Forms" />如果您没有明确地设置它,那么您可能在第一次创建项目时选择了mvc内部网模板。

更新配置文件后,您还需要创建登录/关闭操作和视图。您可能希望使用Internet模板创建另一个项目并提取身份验证组件。

Intranet模板默认为Windows身份验证,而Internet模板默认为form。