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;
我对 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;