写点什么

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

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

关注

评论

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

反而是一个一个的客户教会了我如何接单

程序员郭顺发

快来认领你的开源任务!开源之夏 - 可观测项目发布!

阿里巴巴云原生

阿里云 云原生 可观测

北森酷学院发布新一代AI Learning平台,企业学习开启Agents时代

ToB行业头条

AI SaaS

HarmonyOS5云服务技术分享--退出登录文档问题

莓创技术

MRP都搞不好,何谈生产管理过关!

积木链小链

数字化转型 智能制造 生产管理

HarmonyOS5云服务技术分享--手机号登录教程

莓创技术

HarmonyOS5云服务技术分享--账号登录文章整理

莓创技术

HarmonyOS5云服务技术分享--自有账号对接AGC认证

莓创技术

HarmonyOS5云服务技术分享--账号关联开发指南

莓创技术

AI 极客低代码平台快速上手 -- 设计领域类

华哥的全栈次元舱

Java Python vuetify 纯血鸿蒙 AIGC低代码平台

HarmonyOS5云服务技术分享--ArkTS开发Node环境

莓创技术

Solana 上的Vibe Coding(氛围式编程)正崛起

PowerVerse

AI web3 DePIN

HarmonyOS5云服务技术分享--登录邮件功能整理

莓创技术

HarmonyOS5云服务技术分享--云函数创建配置指南

莓创技术

AskTable 集成 Databend:结构化数据的 AI 查询新体验

Databend

HarmonyOS5云服务技术分享--云数据库使用指南

莓创技术

Sentieon文献解读-使用 Sentieon ctDNA 分析管道高精度、高效地处理 UMI 数据集

INSVAST

umi 肿瘤测序 Sentieon 基因变异检测 生信分析服务

HarmonyOS5云服务技术分享--ArkTS开发函数

莓创技术

从运维告警到业务决策:可观测性正在重新定义企业数据基础设施

观测云

可观测性

私有化即时通讯软件怎么选?这一款可能适合你!

BeeWorks

即时通讯

数据湖和数据仓库的区别

镜舟科技

数据仓库 数据湖 数据存储 大数据分析 湖仓一体

AI极客低代码平台快速上手--创建应用

华哥的全栈次元舱

Java Python vuetify 纯血鸿蒙 AIGC低代码平台

NFT 的叙事正在改变:看懂 NFT 的进化路径

NFT Research

NFT NFT\ web3、

JManus - 面向 Java 开发者的开源通用智能体

阿里巴巴云原生

spring 阿里云 云原生

HarmonyOS5云服务技术分享--ArkTS调用函数

莓创技术

乘“4”而上,进取不止|Aloudata 的变与不变

Aloudata

ETL 数据管理 数据生产力

表答-开启数据分析新范式

梦数技术团队

人工智能 AI 数据分析 爬虫 分析

乘云数字荣获“鑫智奖·2025专家推荐TOP10优秀解决方案”奖项

乘云数字DataBuff

数字化转型 故障定位 金融数字化 业务监控

HarmonyOS5云服务技术分享--匿名登录功能指南

莓创技术

使用 LangChain + Higress + Elasticsearch 构建 RAG 应用

阿里巴巴云原生

阿里云 云原生 Higress

好用的im即时通讯-企业内部即时通讯软件

BeeWorks

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