MVC 4 Windows 身份验证

MVC 4 Windows Authentication

我对 MVC 比较陌生,我需要检索用户名并将其传递到检查用户凭据的公司库。

Web.config

<authentication mode="Windows" />
  <authorization>
    <allow users="*"/>
    <deny users="?"/>
  </authorization>

控制器

[Authorize]
    public class MVCAuthen : Controller
    {
        public string GetCredentials()
        {
            var userName = HttpContext.Current.User.Identity.Name;
            string credential = library.Getcredential(userName);

        return credential;
    }
}

我的问题是,当我尝试检索用户名时,总是一片空白。谁能告诉我哪里做错了或者我是如何找回用户名的?
注意:我正在尝试在本地执行此操作,因为我正在尝试调试它。

首先,您应该使用 Internet 应用程序或 Intranet 应用程序模板。

然后在 web.config 上您应该注释或删除表单身份验证并使用 windows 身份验证。像这样:

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

<authentication mode="Windows" />

并将其添加到 'appSettings'

<appSettings>
    <add key="autoFormsAuthentication" value="false" />
    <add key="enableSimpleMembership" value="false"/>
</appSettings>

现在转到您的解决方案资源管理器,右键单击项目并转到属性。您必须在此处将 Windows 身份验证更改为已启用。

如果您不想允许任何匿名访问,您也可以禁用匿名身份验证。

完成后,您可以在任何控制器或操作上添加 [授权]。

然后您应该可以使用 windows 密码登录。

如果您能够登录并查看页面,那么您可以像这样检索用户名。

var username = HttpContext.User.Identity.Name;