国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > .NET > 正文

Asp.net mvc 權(quán)限過(guò)濾和單點(diǎn)登錄(禁止重復(fù)登錄)

2024-07-10 12:49:29
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

1.權(quán)限控制使用controller和 action來(lái)實(shí)現(xiàn),權(quán)限方式有很多種,最近開(kāi)發(fā)項(xiàng)目使用控制控制器方式實(shí)現(xiàn)代碼如下

/// <summary>/// 用戶權(quán)限控制/// </summary>public class UserAuthorize : AuthorizeAttribute{  /// <summary>  /// 授權(quán)失敗時(shí)呈現(xiàn)的視圖  /// </summary>  public string AuthorizationFailView { get; set; }  /// <summary>  /// 請(qǐng)求授權(quán)時(shí)執(zhí)行  /// </summary>  /// <param name="filterContext">上下文</param>  public override void OnAuthorization(AuthorizationContext filterContext)  {    // 獲取url請(qǐng)求里的 controller 和 action    string controllerName = filterContext.RouteData.Values["controller"].ToString();    string actionName = filterContext.RouteData.Values["action"].ToString();    // 獲取用戶信息    UserLoginBaseInfo _userLoginInfo = filterContext.HttpContext.Session[Property.UerLoginSession] as UserLoginBaseInfo;    //根據(jù)請(qǐng)求過(guò)來(lái)的controller和action去查詢可以被哪些角色操作: 這是查詢數(shù)據(jù)庫(kù) roleid使用 1,2,3,4格式    RoleWithControllerAction roleWithControllerAction =      SampleData.roleWithControllerAndAction.FirstOrDefault(r => r.ControllerName.ToLower() == controllerName.ToLower() && r.ActionName.ToLower() == actionName.ToLower() && r.RoleIds.contails("3"));    // 有值處理    if (roleWithControllerAction != null)    {      //有權(quán)限操作當(dāng)前控制器和Action的角色id      this.Roles = roleWithControllerAction.RoleIds;    }    else    {      //請(qǐng)求失敗輸出空結(jié)果      filterContext.Result = new EmptyResult();      //打出提示文字      HttpContext.Current.Response.Write("對(duì)不起,你沒(méi)有權(quán)限操作!");    }    base.OnAuthorization(filterContext);  }  /// <summary>  /// 自定義授權(quán)檢查(返回False則授權(quán)失敗)  /// </summary>  protected override bool AuthorizeCore(HttpContextBase httpContext)  {    //if (httpContext.User.Identity.IsAuthenticated)    //{    //  string userName = httpContext.User.Identity.Name;  //當(dāng)前登錄用戶的用戶名    //  User user = SampleData.users.Find(u => u.UserName == userName);  //當(dāng)前登錄用戶對(duì)象    //  if (user != null)    //  {    //    Role role = SampleData.roles.Find(r => r.Id == user.RoleId); //當(dāng)前登錄用戶的角色    //    foreach (string roleid in Roles.Split(','))    //    {    //      if (role.Id.ToString() == roleid)    //        return true;    //    }    //    return false;    //  }    //  else    //    return false;    //}    //else    //  return false;   //進(jìn)入HandleUnauthorizedRequest    return true;  }  /// <summary>  /// 處理授權(quán)失敗的HTTP請(qǐng)求  /// </summary>  protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)  {    if (string.IsNullOrWhiteSpace(AuthorizationFailView))      AuthorizationFailView = "error";    filterContext.Result = new ViewResult { ViewName = AuthorizationFailView };  }}            
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 沙湾县| 汉川市| 洮南市| 精河县| 温州市| 东城区| 德州市| 搜索| 河东区| 大洼县| 桐城市| 阜宁县| 阿拉善右旗| 镶黄旗| 浦县| 甘谷县| 祁阳县| 东山县| 吐鲁番市| 启东市| 汉源县| 奉贤区| 濮阳市| 家居| 闻喜县| 柳河县| 报价| 措美县| 赣州市| 德州市| 右玉县| 常熟市| 凤翔县| 许昌市| 拜城县| 临泉县| 罗田县| 三门峡市| 六枝特区| 紫阳县| 任丘市|