【发布时间】:2016-07-11 11:54:49
【问题描述】:
我创建了一个带有 Windows 身份验证的 MVC 5 应用程序,
<authentication mode="Windows" />
<authorization>
<deny users="?" />
</authorization>
我有下面的代码来获取用户的显示名称以及我还想做验证,
protected void Session_Start(object sender, EventArgs e)
{
if (Context.User != null)
{
MapUserADDetails(Context.User);
}
}
private void MapUserADDetails(IPrincipal user)
{
using (HostingEnvironment.Impersonate())
using (var domain = new PrincipalContext(ContextType.Domain, "test.com"))
using (var usr = UserPrincipal.FindByIdentity(domain, user.Identity.Name))
{
if (usr == null)
{
return;
}
Session.Add("UserDisplayName", usr.DisplayName);
}
}
现在我将这个应用程序托管到 IIS 上,并且只启用了 Windows 身份验证。当我浏览它时,它会提示输入用户名和密码,
问题,
即使我输入了错误的用户名/密码,甚至没有填写任何内容,它也能获取显示名称。
如何限制这个?用户/通行证必须针对 AD 进行验证。请建议。谢谢!
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-5 active-directory