写点什么

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:538834
用户头像

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

关注

评论

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

mysql实现主主数据库(双机热备)

大奎

redis+docker构建主从环境

小铨

redis Docker redis+docker 主从环境

区块链通证经济——资产流动性的变革

CECBC

资产流动性

Kubernetes Ingress 可视化编辑器

倪朋飞

Kubernetes 网络

Go Modules 常见使用陷阱

Rayjun

go modules Go 语言

爽啊,终于又见面了,字节跳动后端社招面试分享

Java架构之路

Java 程序员 架构 面试 编程语言

渣硕试水字节跳动,本以为简历都过不了,123+HR面直接拿到意向书

Java 编程 程序员 架构 面试

周小川:数字货币将是下一代货币研究工作的核心

CECBC

数字货币

一束光的旅程

脑极体

Wireshark数据包分析学习笔记Day24

穿过生命散发芬芳

Wireshark 数据包分析 3月日更

数据库与缓存的一致性方案演进

邱学喆

缓存 一致性

区块链如何助力中小企业解决融资难题

CECBC

区块链

Kubernetes 弃用 Docker 后如何切换到 Containerd

倪朋飞

Docker Kubernetes 微服务

软件工程笔记:学习方法

风翱

软件工程 笔记 3月日更

10年后端开发程序员精心整理「C/C++ Linux服务器」 成长路线(附思维导图)

Linux服务器开发

Linux 后端 C/C++ Linux服务器开发 Linux后台开发

那些不得不知的缓存知识

Java 缓存 程序员 面试

蚂蚁金服三面Java面试题全解析,这也太难了吧

Java架构之路

Java 程序员 架构 面试 编程语言

AWS CDK的那些事

小铨

AWS AWS CDK

MySQL-技术专题-使用规范

码界西柚

MySQL

管理者如何才能不亲力亲为?

石云升

项目管理 28天写作 职场经验 管理经验 3月日更

使用雪花 id 或 uuid 作为 MySQL 主键,被老板怼了一顿!

Java小咖秀

MySQL 数据库 雪花算法 uuid 雪花id

Java-技术专题-ConcurrentHashMap读操作分析

码界西柚

Java ConcurrentHashMap

MySQL-技术专题-知识点介绍

码界西柚

MySQL

火爆全网!2021年最新发布Java面试清单(九大技术点)

比伯

Java 程序员 架构 程序人生 架构师

字节跳动5面喜提offer!分享给朋友们面试感受

Java架构之路

Java 程序员 架构 面试 编程语言

监控系统-zabbix快速入门

小铨

监控 zabbix

小鼎机器人系统开发功能及源码

系统开发咨询1357O98O718

Vue3源码 | 如何挂载组件元素?

梁龙先森

源码分析 大前端 Vue3

K8s各节点常用命令

happlyfox

学习 k8s 3月日更

架构师知识笔记1

felix徐

架构实战营

Java-技术专题-Synchronized和lock区别

码界西柚

Java

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