ASP.NET Identity 使用TIP

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ASP.NET Identity 使用TIP 相关的知识,希望对你有一定的参考价值。

1.ASP.NET Identity 适用所有类型的asp.net程序 ASP.NET MVC, Web Forms, Web Pages, Web API, and SignalR。

2.非常方便的扩展用户数据字段。只需一行代码

技术分享

设置好你的数据库连接信息:

技术分享

修改context的名称:

技术分享

打开试图-》其他窗口-》程序包管理控制台,运行 “codefirst”  3部曲:

技术分享

技术分享

添加的数据列乖乖的在这躺着了:

技术分享

需要注意的是,birthday是datetime的数据类型会出现这个问题

技术分享

解决方法就是每次都给这个birthday赋值,或者把这个字段设置成可空类型。下面就是给birthday生日赋值了

技术分享

3.几种获取用户信息的方法:

控制器

技术分享

视图

技术分享

结果

技术分享

4.登陆和注册

总之是有个叫ApplicationSignInManager的东西,获取方式如下,至于为什么要这样获取,别操那么多心先。OWIN是啥?就是OWIN呗!管那么多干嘛!

HttpContext.GetOwinContext().Get<ApplicationSignInManager >();

然后:基本套路,一个方法一定有同步和异步2个方法,你看着用!

技术分享

注册完成后一般的套路:(这里注册完成顺便帮忙登陆了)

技术分享

登陆也是一样的套路:注意有几个结果,是什么玩意之后再说。反正这个注册登录基本就这样,这需求已经满足大部分破网站了。

技术分享

5.邮件确认激活的功能

AccountController中,去掉如下的注释:

技术分享

原有的注册完成后自动登陆的代码注释掉,因为有了激活的机制嘛!

技术分享

在这个文件中补全email service的代码,目前是空方法,smtp服务器和用户名密码自行搞定!

技术分享

技术分享

注册用户后数据库,这个字段还是false

技术分享

妥妥的收到一封邮件,至于这个token怎么生成的,不要在意这些细节,能用就行。

技术分享

技术分享

技术分享

到这一步数据库中是否验证已经变化了

技术分享

至于账号激活能干嘛,没激活不能干嘛,您自己玩弄自己的业务需求。

6.忘记密码

在login的视图中去掉这部分的注释

技术分享

account 控制器中这段代码注释去掉

技术分享

点击忘记密码

技术分享

收到邮件,点击邮件中的链接,调到这个页面,设置后就ok了

技术分享

以上是关于ASP.NET Identity 使用TIP 的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET Identity - 将用户 ID 主键默认类型从字符串更改为 int 以及使用自定义表名时出错

Asp.net Identity 密码哈希

ASP.Net Core Identity - 管理其他用户

我们可以扩展 HttpContext.User.Identity 以在 asp.net 中存储更多数据吗?

ASP.NET Identity系列教程

OUTPUT INSERTED Id/SCOPE_IDENTITY() 在 C# (ASP.NET Core Razor Pages) SQL 查询中返回 null,在 SQL Server Mana