写点什么

ASP.NET MVC 5 改进了基于过滤器的身份验证

  • 2013 年 9 月 09 日
  • 本文字数:764 字

    阅读完需:约 3 分钟

ASP.NET MVC 5 包含在最近发布的 Visual Studio 2013 开发者预览版中,它使开发人员可以应用身份验证过滤器,它们提供了使用各种第三方供应商或自定义的身份验证提供程序进行用户身份验证的能力。不过,这些过滤器要在调用授权过滤器之前应用。

为了创建身份验证过滤器,开发人员需要新建一个 C#ASP.NET 工程,并且从列出的工程类型中选择 MVC。来自 Kunz,Leigh&Associates 公司的高级软件开发工程师 Eric Vogel 已经测试了身份验证过滤器的用法。他创建了一个自定义过滤器,如果用户未通过身份验证,就将其重定向回登录页面。

Eric 创建了一个 CustomAttributes 目录和一个新类 CustomeAttribute,该类继承了

复制代码
ActionFilterAttribute 和 IAuthenticationFilter:
public class BasicAuthAttribute: ActionFilterAttribute,IAuthenticationFilter

接口 IAuthenticationFilter 的 OnAuthentication()方法可以用于执行任何需要的身份验证,而 OnAuthenticationChallenge 方法基于已验证用户的身份限制其访问。

OnAuthenticationChallenge 方法接收 AuthenticationChallengeContext 参数,其实现代码如下所示:

复制代码
public void OnAuthenticationChallenge(AuthenticationChallengeContext filterContext)
{
var user = filterContext.HttpContext.User;
if (user == null || !user.Identity.IsAuthenticated)
{
filterContext.Result = new HttpUnauthorizedResult();
}
}

读者可以从 Eric 的博文获得完整的源代码。BasicAuthAttribute 类很容易测试,打开 HomeController 类文件,并添加下面的代码即可:

复制代码
using VSMMvc5AuthFilterDemo.CustomAttributes;

最后,将自定义属性应用到 HomeController 类,如下所示:

复制代码
[BasicAuthAttribute]
public class HomeController : Controller

查看英文原文: Improved Authentication with Filters in ASP.NET MVC 5

2013 年 9 月 09 日 07:538205
用户头像

发布了 256 篇内容, 共 72.6 次阅读, 收获喜欢 7 次。

关注

评论

发布
暂无评论
发现更多内容

【通俗易懂】虚拟DOM,如何更高效DIFF

蛋先生DX

Diff 6月日更

未来,能源枯竭可以逆转吗?

白洞计划

Windows 10 如何设置网络属性为私有

HoneyMoose

【21-5】Grafana 时间Panel 如何使用

耳东@Erdong

Grafana 6月日更 panel clock

架构实战营-作业六

大可

TempDB 的使用和性能问题

悟空聊架构

sql 性能调优 6月日更 TempDB

【Flutter 专题】106 图解 AnimatedWidget & AnimatedBuilder 动画应用

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 6月日更

一文带你深入了解 Java 字节码

mghio

技术 后端 Java 25 周年 基础

【Vue2.x 源码学习】第十二篇 - 生成 ast 语法树-流程说明

Brave

源码 vue2 6月日更

网络攻防学习笔记 Day43

穿过生命散发芬芳

网络攻防 6月日更

职场礼仪之坐车礼仪

石云升

6月日更 职场礼仪

redis分布式锁原理

Skysper

redis 分布式锁

雪花算法的原理及实现

架构精进之路

算法 6月日更

提升代码格调——JavaScript 数组的 reduce() 方法入门

编程三昧

JavaScript 大前端 数组 js ES6

【LeetCode】重复的DNA序列Java题解

HQ数字卡

算法 LeetCode 6月日更

并发王者课-黄金2:行稳致远-如何让你的线程免于死锁

MetaThoughts

Java 多线程 并发

网络攻防学习笔记 Day42

穿过生命散发芬芳

网络攻防 6月日更

给dubbo贡献源码,做梦都在修bug

捉虫大师

dubbo

SpringCloud Gateway 路由数量对性能的影响研究

Aaron

性能优化 动态路由 SpringCloud Gateway JMH性能基准测试

HTTP 长连接和短连接

看山

TCP/IP HTTP协议 6月日更

【译】JavaScript 中几种循环遍历方式对比

KooFE

6月日更

「SQL数据分析系列」1. SQL背景知识介绍

数据与智能

数据库 sql

贪心算法最优装载问题(Java代码实现)

若尘

数据结构 贪心算法 6月日更

《原则》(十二)

Changing Lin

6月日更

分享8个可以提高开发效率的JavaScript库

devpoint

node.js axios 6月日更

未来,能源枯竭可以逆转吗?

脑极体

【Flutter 专题】105 图解自定义 ACEPageMenu 滑动菜单 (一)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 6月日更

MySQL基础之十:union与limit

打工人!

myslq 6月日更

内卷的出路是躺平?

Qien Z.

创新 内卷 6月日更 躺平

Kubernetes手记(9)- Ingress 控制器

雪雷

k8s 6月日更

立flag(第………………次)

凯迪

随笔杂谈

西门子低代码:探讨应用程序开发的下一步演进方向

西门子低代码:探讨应用程序开发的下一步演进方向

ASP.NET MVC 5改进了基于过滤器的身份验证_安全_Anand Narayanaswamy_InfoQ精选文章