写点什么

ASP.NET Identity 2 新增双重认证、帐号锁定、防伪印章功能并修复了一些 bug

  • 2014-04-25
  • 本文字数:1293 字

    阅读完需:约 4 分钟

Microsoft 最近发布了 ASP.NET Identity 2 ,该版本支持双重认证、帐号锁定以及防伪印章功能,还增强了用户帐号和索引。此外新版本还包含一个改进的密码验证器并修复了一些 bug。

借助于双重认证,开发者能够使用定制的提供程序保护用户帐号,而不是使用传统的 SMS 和基于 email 的验证。例如,开发者能够编写自己的自定义提供程序,例如 QR 代码生成器,并使用手机上的身份验证应用程序验证它们。

新版本的 ASP.NET Identity 2.0 能够保护用户远离暴力破解的困扰,如果用户输入了错误的密码或者双重代码,那么相关的用户帐号会被锁定一段时间。作为一个开发人员,你可以配置无效尝试的次数和时间间隔,另外你也可以通过一个选项为某些用户帐号关闭该功能。

新引入的防伪印章功能让你能够在密码或者相关的社会登录帐号发生改变的时候从应用程序中注销。你可以按照官方 MSDN 博客上的介绍通过注册一个 CookieAuthenticationProvider 在 Startup.Auth.cs 中进行配置。

最新版本提供了一个扩展钩子,借助于该钩子你能指定用户表和角色表的主键,对于那些将 UserId 存储为 GUID 或者 Int 的应用程序而言这是非常有用的。

在新版本发布之前,我们无法通过 UserManager 删除用户,这一问题已经被解决,你能够使用 DeleteAsyn() 函数删除用户。

复制代码
var result = await UserManager.DeleteAsync(user);

你可以使用 Factory 实现从 OWIN 上下文中获取到一个 UserManager 的实例。这一模式与我们从 OWIN 上下文中获取 AuthenticationManager 从而进行登录和登出的模式类似。为了使用这一功能,我们需要在 StartupAuth.cs 类中添加下面的代码:

复制代码
app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);
HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>();

DbContextFactory 中间件每一个请求都会返回一个 ApplicationDbContext 实例,你可以在应用程序中使用它,同时可以在 StartupAuth.cs 中使用下面的代码进行配置:

复制代码
app.CreatePerOwinContext(ApplicationDbContext.Create);

Microsoft 使用新的 IndexAttribute 为 Username 添加了唯一的索引;此外还增强了密码验证器,1.0 提供了一个仅能验证最小长度的基础验证器,而在新版本中我们能够通过配置对密码的复杂性进行更多的控制。该版本还提供了 NuGet 包以及示例 ASP.NET MVC 应用程序,并根据社区的反馈修复了一些 bug。

与 ASP.NET Identity 2 RTM 一起发布的还有 Entity Framework 6.1 ,后者的特性包括工具整合、IndexAttribute 和公共映射 API,此外它还支持.ToString、String.Concat、enum HasFlags,能够通过 App/Web.config 文件配置拦截器。

来自于 Microsoft 的软件工程师 Pranav Rastogi 在他的博客中概括了应用程序从 ASP.NET Identity 1.0迁移到2.0、从2.0 beta 1 迁移到2 所需要的步骤。除了上面提到的特性之外,该版本还包含一些其他的特性,例如帐号确认、密码重置、UsersStore 和RolesStore 上的IQueryable,这些功能最初都是在2013 年12 月份发布的预览版中添加的。

查看英文原文 ASP.NET Identity 2 Adds Two-factor Authentication, Account Lockout, Security Stamp and Bug Fixes

2014-04-25 04:193599
用户头像

发布了 321 篇内容, 共 119.6 次阅读, 收获喜欢 19 次。

关注

评论

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

业界首个机密计算容器运行时—Inclavare Containers正式进入CNCF!

阿里巴巴云原生

阿里云 容器 云原生

OpenKruise 如何实现应用的可用性防护?

阿里巴巴云原生

阿里云 开源 云原生 OpenKruise

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

Albert

算法 LeetCode 10月月更

Interrupted Exception异常可能没你想的那么简单!

华为云开发者联盟

线程 JVM 高并发 并发 java

netty系列之:使用netty搭建websocket客户端

程序那些事

Java Netty websocket 程序那些事

「IM开源推荐」前微信技术专家打造,golang实现,一键部署,客户端SDK全平台支持,轻松替代IM云服务

OpenIM

mysql cpu占用超过100%

hasWhere

8. 这篇博客,把python从数值到模块、到字典、到元组,真python入门复习教程通览

梦想橡皮擦

10月月更

从头开始(概率)学HMM:精讲第四课-预测问题(维特比算法)

herosunly

AI 引航计划 内容合集

TensorFlow by GoogleCNN识别猫和狗, 过拟合优化 易筋 ARTS 打卡 Week 70

John(易筋)

ARTS 打卡计划

VSCode设置Python的unittest测试

陈磊@Criss

disruptor在数据同步场景下的应用实战

编程 架构 面试 后端

第 12 章 -《Linux 一学就会》-重定向和文件的查找

学神来啦

云计算 Linux 运维 linux学习

ERP系统能帮你做些什么?ERP系统的部署类型哪个更适合你?

低代码小观

企业 企业管理 信息化管理 流程管理

kubernetes pod访问不了外网但是宿主机可以

ilinux

定制个机器人帮你和Ta聊天

万俊峰Kevin

golang chatbot 聊天机器人 微信聊天

Form Schema 定义详解

全象云低代码

大前端 低代码平台 JSON Schema

为了减少代码复杂度,我将if-else升级为面向状态编程

华为云开发者联盟

编程 复杂度 面向状态编程 if-else

源码 | 为金融场景而生的数据类型:Numeric

RadonDB

数据库 postgresql

🐬【MySQL技术专题】该换换你的数据库版本了,让我们一同迎接8.0的到来哦!(初探篇)

洛神灬殇

MySQL 运维 MySQL8.0 MySQL 数据库 10月月更

ERP对你有帮助吗?ERP是什么时候开始出现的?

低代码小观

管理 企业 企业管理 运营管理 企业管理系统

【布隆过滤】大数据+查重过滤+爬虫领域精选算法

cv君

AI 引航计划

从头开始(概率)学HMM:精讲第五课-EM算法

herosunly

AI 引航计划 内容合集

一文说清楚css3具有颠覆意义的2D转换效果

你好bk

CSS html css3 大前端 html/css

Vue进阶(幺贰柒):插槽详解

No Silver Bullet

Vue 插槽 10月月更

何时适合进行自动化测试?(上)

禅道项目管理

自动化测试

010云原生之可观测架构模式

穿过生命散发芬芳

云原生 10月月更

保姆级人工智能学习成长路径

herosunly

AI 引航计划 内容合集

【Flutter 专题】35 图解自定义 View 之 Canvas (三)

阿策小和尚

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

架构实战营作业 -- 模块四

冬瓜茶

智慧火电扭转传统运作模式,3D可视化助力双碳政策疾行

一只数据鲸鱼

数据可视化 智慧能源 火力发电 智慧火电 火电厂

ASP.NET Identity 2新增双重认证、帐号锁定、防伪印章功能并修复了一些bug_语言 & 开发_Anand Narayanaswamy_InfoQ精选文章