tnblog
首页
视频
资源
登录
不帅~~但是很暖心.....
排名
14
文章
75
粉丝
21
评论
43
申请别的接口数据(网络接口)
是伍尚金哇 : 敲一夜代码,流下两三行泪水,掏空四肢五体,六杯白开水七桶泡面
mui框架-移动端跳转以及传值的简单方法(修改解决方法)
是伍尚金哇 : 测试了 可以直接在 extras: { userid:'10' //自定义扩展...
数据库的varchar和nvarchar的区别
是伍尚金哇 : 没人看 自己看一个 温习一下
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

页面访问权限

3903人阅读 2019/10/10 16:18 总访问:374177 评论:4 收藏:0 手机
分类: 权限

[库存知识点]

在很多网站或者我们自己项目的运用中可能有些页面或者功能不能共享他人,这时候我就给予权限

本期--页面访问权限--做一个用户登录权限

OK 废话不多说直接上代码:>>

准备好控制器以及相应的视图(页面)



在根目录创建文件夹Filters并且在文件夹里新建一个类(可视作过滤器)IsAuthorizationFilter继承AuthorizeAttribute 分别重写AuthotizeAttribute()方法和

HandleUnauthorizedRequest()两个方法


  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Web.Mvc;
  6. namespace MvcApplication1.Filters
  7. {
  8.     public class IsAuthorizationFilter:AuthorizeAttribute
  9.     {
  10.         /// <summary>
  11.         /// 授权返回bool状态
  12.         /// </summary>
  13.         /// <param name="httpContext"></param>
  14.         /// <returns></returns>
  15.         protected override bool AuthorizeCore(HttpContextBase httpContext)
  16.         {
  17.             if (httpContext.Session["userinfo"] == null)
  18.             {
  19.                 return false;
  20.             }
  21.             else
  22.                return true;
  23.         }
  24.         /// <summary>
  25.         /// 如果授权不通过
  26.         /// </summary>
  27.         /// <param name="filterContext"></param>
  28.         protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
  29.         {
  30.             //如果授权不通过直接跳转到错误页面
  31.             filterContext.Result = new RedirectResult("~/Error/NotLoginErrorPage.love");
  32.             
  33.         }
  34.     }
  35. }
  36. --
  37. ----在App_Start文件夹下FilterConfig.cs
  38. --
  39. public static void RegisterGlobalFilters(GlobalFilterCollection filters)
  40.         {
  41.             filters.Add(new HandleErrorAttribute());
  42.             //添加这句,表示运用到全局
  43.             filters.Add(new IsAuthorizationFilter());
  44.         }


但是在授权不通过时如果不忽略某个页面会一直循环重定向路径,解决方法

在指定的错误页面的控制器设置忽略权限通过  只需在该控制器或者当前类前加上 [AllowAnonymous]即可

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Web.Mvc;
  6. namespace MvcApplication1.Controllers
  7. {
  8.     [AllowAnonymous]
  9.     public class ErrorController : Controller
  10.     {
  11.         //
  12.         // GET: /Error/
  13.         public ActionResult ErrorPage()
  14.         {
  15.             return View();
  16.         }
  17.         public ActionResult NotLoginErrorPage()
  18.         {
  19.             return View();
  20.         }
  21.     }
  22. }

运行结果:>>

好了  本期 小编就简单的说到这里 


评价

剑轩

2020/4/29 10:55:53

什么地方都可以啦,关键是有她的地方就好~

是伍尚金哇_v:@剑轩有她的地方都很好

2020/4/29 11:02:56 回复

剑轩:@是伍尚金哇_v是的丫~,嘿嘿,最美的风景就是她

2020/4/29 11:08:03 回复

忘掉过去式

2020/4/29 11:30:48

真正羡慕你们这些人  可以到处耍

剑轩:@忘掉过去式都可以去耍啊

2020/4/29 12:50:42 回复

是伍尚金哇_v:@剑轩过来我陪你耍

2020/4/29 13:36:58 回复

忘掉过去式:@剑轩而我只能家里蹲

2020/4/29 13:53:47 回复

青春年华

2020/5/1 10:29:40

去耍!

两情若是久长时,又岂在朝朝暮暮?