写点什么

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

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

关注

评论

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

解锁 ElasticJob 云原生实践的难题

宋小生

SQL FULL OUTER JOIN 关键字:左右表中所有记录的全连接解析

小万哥

MySQL 数据库 程序员 sql 后端开发

数字经济时代:城市到底如何演绎?产业将何去何从?

平平无奇爱好科技

Programming Abstractions in C阅读笔记:p197-p201

codists

Autoscaler 中 VPA 的设计与实现

Greptime 格睿科技

k8s 时序数据库

Java 学习之路

玄兴梦影

Java 编程

竞放数字力量,释放无限潜能!

天翼云开发者社区

云计算 大数据 IDC

CORS跨域问题

zurhan

芯片国产替代发展得怎么样了?

IC男奋斗史

华为 芯片 校园招聘 国产替代 中芯国际

RWA+AI 叙事下的 ProsperEx,对 Web3 时代交易的重新定义

股市老人

华为云耀云服务器L实例助力小程序开发的成本与效率之选

轶天下事

想要更高的压缩率?一文带你深入了解 TDengine TSZ 压缩算法

TDengine

tdengine 时序数据库

企业为什么需要进行敏捷开发培训?有哪些好处?

顿顿顿

敏捷开发 敏捷项目管理 scrum培训 敏捷培训

数据同步:主从如何实现数据一致性

zurhan

Redis 慢操作

zurhan

轻松搭建,轻松上云——华为云耀云服务器L实例助力小程序开发

轶天下事

企业数字化浪潮来袭,华为云耀云服务器L实例打造中小企业

轶天下事

解放你的双手,让 ChatGPT 来帮你完成 Jenkins 到极狐GitLab CI 的迁移

极狐GitLab

ci DevOps jenkins openai ChatGPT

卓越性能下的华为云耀云服务器L实例:小程序竞争中的利器

轶天下事

新形势下,2024年企业数字化转型该如何进行?

优秀

数字化转型 企业数字化转型

编程太难学?你可能还没试过这个神器

代码生成器研究

性能调优五步法

天翼云开发者社区

Linux 性能优化

Redis - AOF 日志

zurhan

Java 对象的内存布局

zurhan

华为云耀云服务器L实例助你轻松搭建个人网站

轶天下事

SocialFi 和 GameFi 的碰撞 — Socrates 构建新的 Web3 流量入口

股市老人

Databend 开源周报第 121 期

Databend

华为云助力中小企业应对挑战:云耀L实例在跨境电商的应用探析

轶天下事

细微之处决定胜败:从云厂商事故报告中学习经验教训

WuKongCoder

云计算 腾讯云 阿里云 华为云 AWS云

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