前言:最近在倒腾 微软的新平台 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()
{
//逻辑代码
}
}

asp.net Core 2.0 MVC为Controller或Action添加定制特性实现登录验证的更多相关文章

  1. C# mvc中为Controller或Action添加定制特性实现登录验证

    在本文开始前,先简单讲两个知识点: 1.每个action执行前都会先执行OnActionExecuting方法: 2.FCL提供了多种方式来检测特性的存在,比如IsDefined.GetCustomA ...

  2. ASP.NET CORE 1.0 MVC API 文档用 SWASHBUCKLE SWAGGER实现

    from:https://damienbod.com/2015/12/13/asp-net-5-mvc-6-api-documentation-using-swagger/ 代码生成工具: https ...

  3. ASP.NET Core 2.0 MVC项目实战

    一.前言 毕业后入职现在的公司快有一个月了,公司主要的产品用的是C/S架构,再加上自己现在还在学习维护很老的delphi项目,还是有很多不情愿的.之前实习时主要是做.NET的B/S架构的项目,主要还是 ...

  4. asp.net core 3.0 MVC JSON 全局配置

    asp.net core 3.0 MVC JSON 全局配置 System.Text.Json(default) startup配置代码如下: using System.Text.Encodings. ...

  5. ASP.NET Core 2.0 MVC「远程」验证

    问题 如何 在ASP.NET Core MVC中使用[Remote]属性来实现模型验证 . 解 在 启动时, 为MVC配置中间件和服务. 添加一个模型. 添加一个控制器. 为jQuery添加一个Raz ...

  6. 基础教程:视图中的ASP.NET Core 2.0 MVC依赖注入

    问题 如何在ASP.NET Core MVC Views中注入和使用服务. 解 更新 启动 类来为MVC添加服务和中间件. 添加一项服务 添加一个Controller,返回 ViewResult. 添 ...

  7. 基础教程:ASP.NET Core 2.0 MVC筛选器

    问题 如何在ASP.NET Core的MVC请求管道之前和之后运行代码. 解 在一个空的项目中,更新 Startup 类以添加MVC的服务和中间件. publicvoid ConfigureServi ...

  8. ASP.NET Core 2.0 MVC - 获取当前登录用户信息

    一.前言 上篇实战完成后,没想到会有那么多的圈友给了那么多的支持,甚至连只是作为代码仓储的git上也给了一些小星星,真的感觉很惶恐啊,哈哈哈,毕竟代码写的很烂啊.由于上一篇只是大概说了下项目,所以准备 ...

  9. 无法下载apk等格式的文件的解决方案---ASP .NET Core 2.0 MVC 发布到IIS上以后无法下载apk等格式的文件的解决方案

    ASP .NET Core MVC 发布到  IIS 上以后 无法下载apk等格式的文件 使用.NET Core MVC创建了一个站点,其他文件可以下载,但是后来又需求,就把手机端的apk合适的文件上 ...

随机推荐

  1. leetcode84 柱状图

    O(n^2) time 应用heights[r]<=heights[r+1]剪枝: class Solution { public: int largestRectangleArea(vecto ...

  2. 如何打开DOS控制台

    A:xp下如何打开DOS控制台? a:开始--程序--附件--命令提示符 b:开始--运行--cmd--回车 c:win+r--cmd--回车 B:win7下如何打开DOS控制台? a:开始--所有程 ...

  3. Python-sympy科学计算与数据处理(数学表达式)

    数学表达式 from sympy import * 1/2+1/3 S(1)/2+1/S(3) Out[4]: 5/6 Rational(5,10) Out[5]: 1/2 x,y = symbols ...

  4. C++typedef的详细用法

    转自知乎的一段解释: 作者:知乎用户链接:https://www.zhihu.com/question/29798061/answer/144423125来源:知乎著作权归作者所有.商业转载请联系作者 ...

  5. centos下同步备份工具rsync的安装及配置

    http://www.cnblogs.com/wander1129/archive/2013/03/27/2984922.html

  6. Java泛型(4):泛型与匿名内部类

    泛型同样也可以使用在匿名内部类中. 下面的例子是对 Java泛型(3):泛型方法 中例(2)的修改. public interface Generator<T> { T next(); } ...

  7. vue build后 less sass background-img找不到文件

    修改build下面的utils.js配置 if (options.extract) { return ExtractTextPlugin.extract({ use: loaders, publicP ...

  8. Java并发——volatile

    CPU的内存模型如下:

  9. Python 网络通信协议(互联网协议)

    一. 操作系统基础 操作系统(Operatin System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在"裸机"上的最基本的系统软件,任何其他软件都必须在 ...

  10. zabbix3.0升级到4.0

    升级步鄹: 3.0->3.2 1.停服务 service zabbix-server stop 2.备份配置文件 #cp /etc/zabbix/zabbix_server.conf /data ...