我的任务是创建通过数据库验证的Windows用户名的Intranet站点,而不是AD。
我面临的问题是MVC5正在验证所有Windows用户。
所以,我试过这个:
//Global.asax
protected void Application_AuthorizeRequest(object sender, EventArgs e)
{
if (User.Identity.IsAuthenticated)
{
var user = User.Identity.Name;
if (!String.IsNullOrEmpty(user))
{
using (var db = new dbDbContext())
{
if (!db.Users.Any(x => x.Username.ToLower() == user.ToLower()))
{
this.Response.StatusCode = 401;
}
}
}
}
}
因此,如果用户不在Users表中,则会提示用户提供凭据。唯一的问题是,如果他们点击取消他们仍然会去页面!