【C#】MVC请求统一验证的方法



    MVC出色的地方是优雅的URL格式和代码结构,很实用。

    使用过程中遇到一个问题是需要对MVC的请求做统一的token验证,如果验证不过则跳转到制定页面。网上方法不多,不过还是找到了解决办法,即重写控制器的OnActionExecuting方法,在动作执行前进行统一的预处理,实现代码如下:



    public class BaseController : Controller
    {
    protected override void OnActionExecuting(ActionExecutingContext context)
    {
    // 非错误提示接口则判断是否授权
    if (!(context.ActionDescriptor.ControllerDescriptor.ControllerName == "Home"))
    {
    if (!CheckToken())
    {
    context.Result = RedirectToRoute("Default", new { Controller = "Home", Action = "Error", errCode = Error.TOKEN_ERR_CODE, errMsg = Error.TOKEN_ERR_MSG });
    }
    }
    base.OnActionExecuting(context);
    }

    /// <summary>
    /// 验证token是否正确
    /// </summary>
    /// <returns></returns>
    private bool CheckToken()
    {
    if (System.Configuration.ConfigurationManager.AppSettings["check_token"] == "true")
    {
    string token = System.Configuration.ConfigurationManager.AppSettings["app_token"];
    return (Request["token"] != null && Request["token"].ToString() == token);
    }
    else
    {
    return true;
    }
    }
    }
    再修改其他所有的控制器继承自BaseController就OK了。上面的代码实现了出Home控制器外的请求在token验证失败时跳转到错误提示页面。



    本博客所有文章如无特别注明均为原创。
    复制或转载请以超链接形式注明转自枫芸志,原文地址《【C#】MVC请求统一验证的方法
    标签:
    分享:

还没有人抢沙发呢~

无觅相关文章插件,快速提升流量