1.权限就是一个登陆的权限,我们可以重写AuthorizeAttribute达到自定义的权限管理,重写AuthorizeAttribute里面的OnAuthorization方法。
public override void OnAuthorization(AuthorizationContext filterContext) { base.OnAuthorization(filterContext); if (!filterContext.HttpContext.User.Identity.IsAuthenticated) { filterContext.HttpContext.Response.Redirect("~/Account/Login?returnUrl=" + filterContext.HttpContext.Request.RawUrl); return; } var userName = filterContext.HttpContext.User.Identity.Name.Split(‘|‘)[0]; if (string.IsNullOrEmpty(userName)) return; 权限实体 open = 获取用户权限(userName); if (是否存在权限) { //权限不存在 filterContext.HttpContext.Response.Redirect("~/Account/NoAuthority"); } }
2.在登陆页面只要保存一下登陆的Cook值就OK了
FormsAuthentication.SetAuthCookie(userInfo.UserId.ToString() + "|" + userInfo.UserName.ToString(), false);
var returnUrl = Request["returnUrl"];
return Redirect(!string.IsNullOrEmpty(returnUrl) ? returnUrl : "~/");
3.只要在每个acction上面添加重写的AuthorizeAttribute就可以了。
时间: 2024-11-02 23:31:37