Authorize权限验证

        项目中需要用到权限验证,但是没做过,经过一番学习,找到了个简单的实现,这里记录一下,防走丢。

项目使用的是.net freamwork 框架。

用户请求时,需要在请求头中带权限验证参数。

首先,建一个AuthorityFilterAttibute类,并集成AuthorizeAttribute。然后实现OnAuthorization方法,具体代码如下:

public class AuthorityFilterAttibute : AuthorizeAttribute
    {
        CustomerBLL bll = new CustomerBLL();
        //public override  bool AllowMultiple { get; }

        public override void OnAuthorization(HttpActionContext actionContext)
        {
            // 1、客户请求的用户标识和凭据
            actionContext.Request.Headers.TryGetValues("user_flag", out var user_flag);
            actionContext.Request.Headers.TryGetValues("flag_key", out var flag_key);
            //调用方标志
            actionContext.Request.Headers.TryGetValues("server_flag", out var server_flag);
            //获取用户token
            actionContext.Request.Headers.TryGetValues("Authorization", out var Authorization);
            //LogHelper.WriteLog("user_flag :" + user_flag.FirstOrDefault() + "》flag_key" + flag_key.FirstOrDefault());

            if (user_flag == null || flag_key == null || !flag_key.Any() || !user_flag.Any())
            {
                HttpContext.Current.Response.StatusDescription = "当前请求没有访问权限";
                actionContext.Response = new HttpResponseMessage(System.Net.HttpStatusCode.NonAuthoritativeInformation);
                return;
            }

            string flag = user_flag.FirstOrDefault() + "_key";
            string YHSW_key = ConfigurationManager.AppSettings[flag];

            if (YHSW_key != flag_key.FirstOrDefault())
            {
                HttpContext.Current.Response.StatusDescription = "当前请求用户标识或密钥错误";
                actionContext.Response = new HttpResponseMessage(System.Net.HttpStatusCode.NonAuthoritativeInformation);
                return;
            }

         
        }

然后在需要进行授权控制的方法上[AuthorityFilterAttibute] 使用即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
NetCore权限验证是基于微软的.Net Core框架提供的一种权限验证方法。在.Net Core中,可以使用策略授权和角色授权两种方式进行权限验证。 策略授权是通过在代码中定义一系列的策略,然后在需要进行权限验证的地方进行引用。这些策略可以定义在控制器、方法、属性等级别上,并可以使用一些条件语句来进行更加细粒度的权限控制。在进行权限验证时,系统会根据这些策略来判断用户是否具有相应的权限。 角色授权是基于角色的权限控制方式。在.Net Core中,可以使用角色来进行权限的管理和分配。可以通过声明角色,并将角色与用户进行关联,然后在代码中通过[Authorize(Roles=“角色名”)]的方式来限制只有具备特定角色的用户才能访问相应的资源或执行特定操作。 除了以上两种方式,还可以使用资源授权来进行权限验证。资源授权是基于资源的一种权限控制方法。在代码中,可以通过[Authorize(Policy=“资源名称”)]的方式来限制只有具备特定资源权限的用户才能访问相应的资源或执行特定操作。 NetCore权限验证提供了灵活、易用的权限控制方式,可以满足各种权限验证需求。同时,.Net Core还提供了扩展性良好的权限验证机制,可以通过自定义策略处理程序、角色提供程序等来实现更加复杂的权限控制逻辑。总之,NetCore权限验证是一种功能强大、灵活性高的权限验证方法,可以帮助开发者实现精细的权限控制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值