详解ASP.NET中Identity的身份验证代码

2019-12-30 18:27:28于海丽

1.访问登录页面出现Microsoft的按钮(注:必须使用HTTPS地址才能正常的使用微软身份验证):

ASP.NET,Identity,身份验证

2. 点击微软身份验证按钮后,跳转到微软账户登录页面:

  ASP.NET,Identity,身份验证

  ASP.NET,Identity,身份验证

3. 完成登录后,由于是第一次登录,所以会跳转到信息补全页面:

  ASP.NET,Identity,身份验证

输入邮箱后将登录成功:

  ASP.NET,Identity,身份验证

数据库中的信息:

  ASP.NET,Identity,身份验证

上图中可以看到无密码,然后在Login表中有一条数据:

ASP.NET,Identity,身份验证

实现双因子身份验证

Identity的双因子身份验证实际上是Identity的一个内置功能,为什么说是内置呢?因为只需要实现信息的发送(如邮件、短信等),然后再对Identity中的SignInManager进行简单的配置然后添加一些用于发送、填写验证码的页面就可以完成。所以首先需要完成的就是实现信息发送功能。

注:这里信息发送功能使用将信息写到硬盘的方式模拟。

1. 实现信息的发送:
在ASP.NET MVC默认的模板中就为我们创建了如下代码:

ASP.NET,Identity,身份验证

默认的邮件及短信发送器,只不过它没有实现,仅仅是返回了一个空值,现在使用写硬盘的方式将信息写到硬盘上:

   ASP.NET,Identity,身份验证

2. 完成UserManager的双因子验证配置:

  ASP.NET,Identity,身份验证

三个关键点:1. TokenProvider,它用来生成验证码。2. 信息格式。3. 信息发送服务。

3. 在身份验证管道中加入双因子验证中间件: