Asp.net mvc 4 MVC 4 Windows身份验证和自定义授权
我花了一些时间试图掌握在我的应用程序中处理身份验证/授权的最佳方法。我正在使用windows身份验证,并且能够读取用户名 要授权用户,我需要查询数据库以获取其角色,并为具有该角色的用户创建自定义主体 我相信下面的方法会奏效,但是,我只是好奇是否有更好的方法只查询数据库一次,而不是使用会话变量作为检查 下面的代码在my Global.asax中Asp.net mvc 4 MVC 4 Windows身份验证和自定义授权,asp.net-mvc-4,authorization,Asp.net Mvc 4,Authorization,我花了一些时间试图掌握在我的应用程序中处理身份验证/授权的最佳方法。我正在使用windows身份验证,并且能够读取用户名 要授权用户,我需要查询数据库以获取其角色,并为具有该角色的用户创建自定义主体 我相信下面的方法会奏效,但是,我只是好奇是否有更好的方法只查询数据库一次,而不是使用会话变量作为检查 下面的代码在my Global.asax中 protected void Application_AuthenticateRequest(object sender, EventArgs args)
protected void Application_AuthenticateRequest(object sender, EventArgs args)
{
if (HttpContext.Current != null)
{
if (this.Session["Authenticated"] == null)
{
using (AppToolsEntities db = new AppToolsEntities())
{
var user = db.ADObjects.Where(x => x.CN == User.Identity.Name.RemoveDomain()).FirstOrDefault();
string[] roles = new string[] { user.Title == "EA" ? "Reviewer" : "Admin" };
GenericPrincipal principal = new GenericPrincipal(HttpContext.Current.User.Identity, roles);
Thread.CurrentPrincipal = HttpContext.Current.User = principal;
this.Session["Authenticated"] = true;
}
}
}
}
我这样做对吗
提前谢谢