写点什么

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

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

关注

评论

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

小米su7 or 保时捷怎么选?使用 Three 实现 3D 汽车展示平台比比看

战场小包

Vue 前端 ThreeJS AIGC

Real Glow for mac下载含激活码 AE真实发光效果模拟插件

Rose

Delicious Retouch Panel(PS人像磨皮美容插件) v5.0(DR5) 中文高级版(Win/Mac)

Rose

PS/LR滤镜插件套装Nik Collection 6中文版及新功能介绍

Rose

企业如何选电子合同对接平台?8大系统解读

爱吃小舅的鱼

电子合同 电子合同软件 电子合同系统

别再手动下载!用pip直接安装GitHub上的Python第三方库

LLLibra146

Python GitHub pip pypi

高效企业同步盘推荐:7款受好评的工具

爱吃小舅的鱼

网盘 企业网盘

HarmonyOS Next开发工具DevEco Studio介绍:ASan与TSan检测根治你的C++恐惧症

轻口味

鸿蒙 HarmonyOS DevEco Studio HarmonyOS NEXT

GitHub热点速览:高效双语对照PDF翻译工具推荐

代码忍者

Kafka Streams 在监控场景的应用与实践

vivo互联网技术

监控 实时处理 Kafka Streams 消费倾斜

鸿蒙 next -arkts-实现防抖节流功能

flfljh

5分钟入门微信小游戏开发(二)

扬_帆_起_航

使用 PyCharm 新建 Python 项目详解

敲代码不忘补水

Python pycharm 计算机科学与技术 科学 Miniconda

汉化版AE插件镜头光晕耀斑 optical flares插件安装教程及注册码

Rose

鸿蒙 next Scroll() 无法滚动问题

flfljh

Lumoz主网启航:为ETH3.0、ZK和AI提供无穷算力

股市老人

AE高级辉光特效插件 Deep Glow 下载安装 含Deep Glow激活码

Rose

直播预告:OpenAI 开始拥抱 RTC!为什么 LLM+RTC 才是多模态 AI 的未来?丨RTE Dev Talk

声网

掌握DevEco Studio这一功能,高效实现ArkTS与C++胶水代码

轻口味

c++ ide 鸿蒙 HarmonyOS HarmonyOS NEXT

开源云原生数据仓库 ByConity实测,开启开启数据仓库的新篇章

轻口味

OLAP 火山引擎 ByConity

Red Giant Trapcode Suite(红巨人粒子特效套装插件)最新激活码2024

Rose

Photoshop插件 Adobe Camera Raw中文直装2024最新版

Rose

设计师必备!Sketch Measure让测量工作更高效、更智能!

Rose

如何去了解客户的真实需求

爱吃小舅的鱼

需求管理 客户需求

Python 安装和依赖管理指南:Conda 与 Pip

敲代码不忘补水

Python 开发语言 计算机科学与技术 科学 Miniconda

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