写点什么

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

  • 2013-09-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-09-09 07:538984
用户头像

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

关注

评论

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

大画 Spark :: 网络(3)-回复消息机制OneWayMessage与RpcRequest对比

dclar

大数据 spark 源代码 Spark 源码

架构实战营模块五作业

曾竞超

架构实战营 「架构实战营」

架构训练营 - 模块 9 作业

焦龙

架构训练营

「offer来了」1张思维导图,6大知识板块,带你梳理面试中CSS的知识点!

星期一研究室

css3 前端开发 面试题 面试‘ HTML5, CSS3

网站安全检测:推荐8款免费的 Web 安全测试工具

喀拉峻

网络安全

毕业设计

dean

架构实战营

Java基础:UUID

程序员架构进阶

Java uuid 1月日更 2022

架构实战-毕业设计项目

无名

架构实战营 「架构实战营」

技术管理养成:一个普通的在线文档做瀑布与敏捷的融合

dclar

团队管理 项目管理 敏捷开发 团队协作 CTO

[架构实战营] 模块六作业

Geek_0ed632

「架构实战营」

“微博评论”高性能高可用计算架构设计

swallowluo

架构实战营 #架构实战营 「架构实战营」

ReactNative进阶(十九):React Native 按钮 Touchable 系列组件使用详解

No Silver Bullet

​React Native 1月月更 Touchable

盘点 2021|人只有跌入谷底,每一步都是往上走的。

踏雪痕

生活 盘点2021 盘点 2021

15 Promethus之核心组件介绍

穿过生命散发芬芳

Prometheus 1月月更

连续读书1000天,我开始思考一篇好的读书总结是什么样子的

宇宙之一粟

读书总结 1月月更

kafka Controller作用

石头哥谈架构

大数据 kafka 消息中间件

渗透测试思路总结

网络安全学海

黑客 信息安全 渗透测试 安全漏洞

【微博评论】功能的高性能高可用计算架构设计

红莲疾风

「架构实战营」

ABAP 调用第三方 API,遇到乱码该怎么办?

汪子熙

Unicode abap 字符编码 1月月更

第一节:创建SpringBoot项目并运行HelloWorld

入门小站

springboot

好家伙!你这网络基础可以啊!1️⃣

XiaoLin_Java

1月日更

Go 语言快速入门指南: Go 并发互斥锁

宇宙之一粟

并发 Go 语言 互斥锁 1月月更

记中山公园全马--一场无准备的马

wood

跑步 300天创作

为什么您的企业需要移动CRM系统

低代码小观

移动 CRM CRM系统 客户关系管理系统 企业管理工具

LeetCode每日一题 No.1716 计算力扣银行的钱

DawnMagnet

算法 rust LeetCode 力扣

大数据集群节点磁盘负载不均衡怎么办?

明哥的IT随笔

大数据 hadoop CDH CDP

消息积压&消息丢失解决方案

JavaEdge

1月月更

设计电商秒杀系统

Steven

架构实战营

zip文件自动打包

你?

架构营模块九作业

GTiger

架构实战营

spring5.0.x 源码编译过程及踩坑记录

努力努力再努力

1月日更

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