博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简单的forms验证
阅读量:4967 次
发布时间:2019-06-12

本文共 1363 字,大约阅读时间需要 4 分钟。

public class CustomAuthorzieAttribute : AuthorizeAttribute

{
  private string _controllerName = string.Empty;

  /// <summary>

  /// base.OnAuthorization(filterContext)中会调用AuthorizeCore函数
  /// 当AuthorizeCore返回false,则会继续调用HandleUnauthorizedRequest进行处理
  /// 所以OnAuthorization是该类的总入口
  /// </summary>
  /// <param name="filterContext"></param>
  public override void OnAuthorization(AuthorizationContext filterContext)
  {
  //程序过滤器入口处

  //获取当前访问页面所属控制器名称

  _controllerName = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName;

  base.OnAuthorization(filterContext);

}

/// <summary>
/// base.OnAuthorization来调用
/// </summary>
/// <param name="httpContext"></param>
/// <returns></returns>
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
  //登陆界面,允许匿名访问,不用身份认证,直接返回true
  if (_controllerName.ToLower() == "login")
  {
    return true;
  }
  //获取当前登陆主体标识信息
  var dien = httpContext.User.Identity;

  //判断,如果验证登陆通过,直接返回true

  if (dien.IsAuthenticated)
  {
    return true;
  }
  else //否则拒绝访问 false
  {
    return false;
  }
}

  // <summary>
  /// 当AuthorizeCore返回false时候调用
  /// </summary>
  /// <param name="filterContext"></param>
  protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
  {
    base.HandleUnauthorizedRequest(filterContext);
  }

转载于:https://www.cnblogs.com/LLC0903/p/10153605.html

你可能感兴趣的文章
AngularJs表单验证
查看>>
静态方法是否属于线程安全
查看>>
02号团队-团队任务3:每日立会(2018-12-05)
查看>>
SQLite移植手记1
查看>>
js05-DOM对象二
查看>>
mariadb BINLOG_FORMAT = STATEMENT 异常
查看>>
C3P0 WARN: Establishing SSL connection without server's identity verification is not recommended
查看>>
iPhone在日本最牛,在中国输得最慘
查看>>
动态方法决议 和 消息转发
查看>>
js 基础拓展
查看>>
C#生成随机数
查看>>
Android应用程序与SurfaceFlinger服务的连接过程分析
查看>>
Java回顾之多线程
查看>>
机电行业如何进行信息化建设
查看>>
9、总线
查看>>
Git 笔记 - section 1
查看>>
2018 Multi-University Training Contest 10 - Count
查看>>
HDU6203 ping ping ping
查看>>
《人人都是产品经理》书籍目录
查看>>
如何在git bash中运行mysql
查看>>