asp.net Core 2.0 MVC为Controller或Action添加定制特性实现登录验证
2020-02-29 18:58
591 查看
前言:最近在倒腾 微软的新平台 asp.net Core 2.0,在这个过程中有些东西还是存在差异。下面是我在学习过程的一点笔记。有不妥之处,望各位大虾指正!
一、先创建一个控制器继承于Controller的BaseController,代码如下:
using System.Linq; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Filters; using Zen.Core.Models; using Zen.Core.Comm; using Microsoft.AspNetCore.Mvc.Controllers; namespace Zen.Web.Controllers { public class BaseController : Controller { public override void OnActionExecuting(ActionExecutingContext context) { base.OnActionExecuting(context); bool result = false; var attrib = (context.ActionDescriptor as ControllerActionDescriptor).MethodInfo.
GetCustomAttributes(typeof(CheckLogin), false).FirstOrDefault(); var attr = attrib as CheckLogin; if (attr != null) { if (attr.IsNeedLogin) { result = true; } else { result = false; } } if (!IsLogin() && result) { //如果没有登录,则跳至登陆页 context.Result = Redirect("GoogleApiBase/Login"); } } protected bool IsLogin() { Administrator adminobj = HttpContext.Session.GetObjectFromJson<Administrator>("admin"); //获取登录session if (adminobj != null) return true; return false; } } }
二、再创建一个验证类CheckLogin,代码如下:
using System; namespace Zen.Web.Controllers { public sealed class CheckLogin : Attribute { public bool IsNeedLogin = false; public CheckLogin(bool isNeed) { this.IsNeedLogin = isNeed; } } }
三、开始应用,代码如下:
public class TestController : BaseController { [CheckLogin(false)] public IActionResult Index() { //逻辑代码 } }
转载于:https://www.cnblogs.com/CHNMurphy/p/7527494.html
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- C# mvc中为Controller或Action添加定制特性实现登录验证
- ADO.NET .net core2.0添加json文件并转化成类注入控制器使用 简单了解 iTextSharp实现HTML to PDF ASP.NET MVC 中 Autofac依赖注入DI 控制反转IOC 了解一下 C# AutoMapper 了解一下
- ASP.NET Core 2.0 MVC - 获取当前登录用户信息
- 【ASP.NET Core快速入门】(十五)MVC开发:ReturnUrl实现、Model后端验证 、Model前端验证
- 菜鸟入门【ASP.NET Core】15:MVC开发:ReturnUrl实现、Model后端验证 、Model前端验证
- ASP.NET MVC 学习4、Controller中添加SearchIndex页面,实现简单的查询功能
- ASP.NET Core 2.0 MVC「远程」验证
- Asp.Net Core 2.0 项目实战(10) 基于cookie登录授权认证并实现前台会员、后台管理员同时登录
- 创建ASP.NET Core MVC应用程序(6)-添加验证
- ASP.NET MVC(模型(Model),视图(View)和控制Controller)实践:实现身份验证权限管理
- Asp.net mvc + .net ef database first 或 model first 时如何添加验证特性
- ASP.NET Core中实现用户登录验证的最低配置示例代码
- ASP.NET实现MVC中获取当前URL、controller及action的方法
- Asp.net mvc验证用户登录之Forms实现-转
- Asp.Net Core 2.0 项目实战(10) 基于cookie登录授权认证并实现前台会员、后台管理员同时登录
- ASP.NET MVC 实现统一登录验证
- 创建ASP.NET Core MVC应用程序(6)-添加验证
- 创建ASP.NET Core MVC应用程序(1)-添加Controller和View
- 创建ASP.NET Core MVC应用程序(1)-添加Controller和View
- 在ASP.NET Core中实现自定义验证特性(Custom Validation Attribute)