使用ASP.NET Identity以手机短信实现双重验证
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用ASP.NET Identity以手机短信实现双重验证,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2773字,纯文字阅读大概需要4分钟。
内容图文
这篇文章将展示怎么使用SMS短信启动双重验证
创建一个ASP.NET 5项目
一开始,使用Visual studio 2015创建一个新的ASP.NET Web应用程序:
在下一步中选择ASP.NET 5 Templates中的Website项目模板,并在右侧面板中确认选择了Individual Authentication:
到这里,项目已经创建,这可能需要几分钟来加载,注意在Visual studio状态栏中指示正在下载的一些资源,Visual studio下载了一些它认为需要的文件作为应用程序解决方案的一部分。
运行应用程序
在项目加载结束后,运行这个应用程序,你将看到以下页面:
使用SMS短信进行双重验证
本教程使用Twilio,但是你也可以使用其他任何的SMS技术提供商。
- 创建Twilio账号
- 从”Account“选项卡,拷贝账户的SID和Auth token
- 从”Numbers“选项卡页面中,拷贝你Twilio电话号码
- 确保以上两项在你的应用程序中可用
- 在应用程序中添加Twilio的Nuget包
- 在MessageServices中添加代码来发送SMS短信
public static Task SendSmsAsync(string number, string message) { // Plug in your SMS service here to send a text message.var twilio = new TwilioRestClient("YourTwilioSid", "YourTwilioToken"); var result = twilio.SendMessage("YourTwilioPhoneNumber", number, message); return Task.FromResult(0); }
注意:在dnxcore50中Twilio不可用,因为twilio不包含这个版本的nuget包,如果你需要在这个版本中使用,可以使用Twilio的REST API
注意:不要直接把账户信息写到代码里,上文中这样做知识尽量保持代码简洁,实际操作中,你需要使用Secret Manager处理这些机密信息
开启双重验证
应用程序已经包含了可以双重验证的代码,下文中步骤展示如何打开它:、
1. 打开在Views/Manage目录下的Index.cshtml模板
2.取消注释的代码以让用户可以输入自己的电话号码:
< dt >Phone Number:</dt><dd> @(Model.PhoneNumber ?? "None") [ @if (Model.PhoneNumber != null) { <a asp-controller="Manage" asp-action="AddPhoneNumber">Change</a> @: | <a asp-controller="Manage" asp-action="RemovePhoneNumber">Remove</a> } else { <a asp-controller="Manage" asp-action="AddPhoneNumber">Add</a> } ] </dd>
3. 取消注释下列代码,让用户可以打开或者关闭双重验证:
< dt >Two-Factor Authentication:</dt><dd> @if (Model.TwoFactor) { <form asp-controller="Manage" asp-action="DisableTwoFactorAuthentication" method="post" class="form-horizontal" role="form"><text> Enabled <input type="submit" value="Disable" class="btn btn-link"/></text></form> } else { <form asp-controller="Manage" asp-action="EnableTwoFactorAuthentication" method="post" class="form-horizontal" role="form"><text> Disabled <input type="submit" value="Enable" class="btn btn-link"/></text></form> } </dd>
使用双重验证登陆应用程序
运行应用程序,来展示双重验证:
1. 为应用程序注册一个新的用户:
2. 在上部导航栏中,单击你的用户名邮件地址:
3. 添加电话号码:
4. 此时如果一切正常,你将收到一条来自上文中获取到的号码的短信:
5. 在页面中输入收到的验证码:
6. 提交页面,电话号码就将显示在用户信息页面中:
7. 点击Enable,开启双重验证:
8. 退出,并用这个用户名和密码重新登陆,验证用户名密码通过后,将跳转到一个让你选择验证方式的页面,如果你有其他双重验证方式,例如二维码或者Email,下拉列表中将会存在对应选项:
9. 最后点击提交,输入收到的验证码,登陆成功:
禁用账户来防止暴力破解
我们推荐你应用双重验证时使用账户禁用,一旦用户执行登录,每次失败的尝试将会被记录,一旦到达设置的错误次数(默认是五次),当前账户将会倍禁用5分钟,以下的配置将在用户登录失败十次后禁用账户10分钟:
services.Configure<IdentityOptions>(options => { options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromMinutes(10); options.Lockout.MaxFailedAccessAttempts = 10; });
原文:http://www.cnblogs.com/xiaoyaojian/p/4776911.html
内容总结
以上是互联网集市为您收集整理的使用ASP.NET Identity以手机短信实现双重验证全部内容,希望文章能够帮你解决使用ASP.NET Identity以手机短信实现双重验证所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。