0

我在使用 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();
    }
4

3 回答 3

2

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

<authentication mode="Forms">
     <forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>
于 2013-07-23T20:44:05.237 回答
1

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

于 2013-07-23T20:43:44.597 回答
0

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

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

Intranet 模板默认为 windows 身份验证,而 internet 模板默认为 form。

于 2013-07-23T20:43:30.733 回答