茄子在线看片免费人成视频,午夜福利精品a在线观看,国产高清自产拍在线观看,久久综合久久狠狠综合

    <s id="ddbnn"></s>
  • <sub id="ddbnn"><ol id="ddbnn"></ol></sub>

  • <legend id="ddbnn"></legend><s id="ddbnn"></s>

    ASP.NET MVC使用ActionFilterAttribute實現(xiàn)權限限制的方法(附demo源碼下載)
    來源:易賢網(wǎng) 閱讀:2803 次 日期:2016-08-10 15:23:58
    溫馨提示:易賢網(wǎng)小編為您整理了“ASP.NET MVC使用ActionFilterAttribute實現(xiàn)權限限制的方法(附demo源碼下載)”,方便廣大網(wǎng)友查閱!

    本文實例講述了ASP.NET MVC使用ActionFilterAttribute實現(xiàn)權限限制的方法。分享給大家供大家參考,具體如下:

    ActionFilterAttribute是Action過濾類,該屬于會在執(zhí)行一個action之前先執(zhí)行.而ActionFilterAttribute是 MVC的一個專門處理action過濾的類.基于這個原理 我們做一個權限限制

    例如:如何訪問 HomeController  里的test  action

    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Web;

    using System.Web.Mvc;

    using MvcTest.Models;

    namespace MvcTest.Controllers

    {

      public class HomeController : Controller

      {

        //

        // GET: /Home/

        public ActionResult Index()

        {

          return View();

        }

        [AuthorizeFilter]

        public ActionResult test()

        {

          return Content("有權訪問");

        }

      }

    }

    建立AuthorizeFilterAttribute.cs   內容如下

    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Web;

    using System.Web.Mvc;

    namespace MvcTest.Models

    {

      /// <summary>

      /// 權限攔截

      /// </summary>

      [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false)]

      public class AuthorizeFilterAttribute : ActionFilterAttribute

      {

        filterContextInfo fcinfo;

        // OnActionExecuted 在執(zhí)行操作方法后由 ASP.NET MVC 框架調用。

        // OnActionExecuting 在執(zhí)行操作方法之前由 ASP.NET MVC 框架調用。

        // OnResultExecuted 在執(zhí)行操作結果后由 ASP.NET MVC 框架調用。

        // OnResultExecuting 在執(zhí)行操作結果之前由 ASP.NET MVC 框架調用。

        /// <summary>

        /// 在執(zhí)行操作方法之前由 ASP.NET MVC 框架調用。

        /// </summary>

        /// <param name="filterContext"></param>

        public override void OnActionExecuting(ActionExecutingContext filterContext)

        {

          fcinfo = new filterContextInfo(filterContext);

          //fcinfo.actionName;//獲取域名

          //fcinfo.controllerName;獲取 controllerName 名稱

          bool isstate = true;

          //islogin = false;

          if (isstate)//如果滿足

          {

            //邏輯代碼

            // filterContext.Result = new HttpUnauthorizedResult();//直接URL輸入的頁面地址跳轉到登陸頁 

            // filterContext.Result = new RedirectResult("http://www.baidu.com");//也可以跳到別的站點

            //filterContext.Result = new RedirectToRouteResult(new System.Web.Routing.RouteValueDictionary(new { Controller = "product", action = "Default" }));

          }

          else

          {

            filterContext.Result = new ContentResult { Content = @"抱歉,你不具有當前操作的權限!" };// 直接返回 return Content("抱歉,你不具有當前操作的權限!")

          }

        }

        /// <summary>

        /// 在執(zhí)行操作方法后由 ASP.NET MVC 框架調用。

        /// </summary>

        /// <param name="filterContext"></param>

        public override void OnActionExecuted(ActionExecutedContext filterContext)

        {

          base.OnActionExecuted(filterContext);

        }

        /// <summary>

        /// OnResultExecuted 在執(zhí)行操作結果后由 ASP.NET MVC 框架調用。

        /// </summary>

        /// <param name="filterContext"></param>

        public override void OnResultExecuted(ResultExecutedContext filterContext)

        {

          base.OnResultExecuted(filterContext);

        }

        /// <summary>

        /// OnResultExecuting 在執(zhí)行操作結果之前由 ASP.NET MVC 框架調用。

        /// </summary>

        /// <param name="filterContext"></param>

        public override void OnResultExecuting(ResultExecutingContext filterContext)

        {

          base.OnResultExecuting(filterContext);

        }

      }

      public class filterContextInfo

      {

        public filterContextInfo(ActionExecutingContext filterContext)

        {

          #region 獲取鏈接中的字符

          // 獲取域名

          domainName = filterContext.HttpContext.Request.Url.Authority;

          //獲取模塊名稱

          // module = filterContext.HttpContext.Request.Url.Segments[1].Replace('/', ' ').Trim();

          //獲取 controllerName 名稱

          controllerName = filterContext.RouteData.Values["controller"].ToString();

          //獲取ACTION 名稱

          actionName = filterContext.RouteData.Values["action"].ToString();

          #endregion

        }

        /// <summary>

        /// 獲取域名

        /// </summary>

        public string domainName { get; set; }

        /// <summary>

        /// 獲取模塊名稱

        /// </summary>

        public string module { get; set; }

        /// <summary>

        /// 獲取 controllerName 名稱

        /// </summary>

        public string controllerName { get; set; }

        /// <summary>

        /// 獲取ACTION 名稱

        /// </summary>

        public string actionName { get; set; }

      }

    }

    希望本文所述對大家asp.net程序設計有所幫助。

    更多信息請查看網(wǎng)絡編程

    2026上岸·考公考編培訓報班

    • 報班類型
    • 姓名
    • 手機號
    • 驗證碼
    關于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
    工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網(wǎng)