在ASP.NET MVC中创建我自己的授权和身份验证系统

时间:2020-06-01 13:37:18

标签: c# asp.net asp.net-mvc entity-framework asp.net-identity

我正在研究ASP.NET项目,我想创建并使用自己的授权和身份验证系统来管理用户(在sql server数据库中),例如登录,检查授权和检查身份验证,我知道ASP.NET我们有Identity,但我想创建自己的系统。

所以我的问题是,有没有人对自定义系统有好的算法或结构或公正性和想法?

非常感谢。

2 个答案:

答案 0 :(得分:1)

您可以从简单的事情开始,创建具有普通字段登录密码 AuthController 用户模型。 strong>,它将具有两种方法 RegisterUser SignIn

RegisterUser -在这里您必须检查Login是否已经存在,如果不存在-将数据插入表 Users 中。重要的是-您必须选择算法来加密用户密码并将其保存在数据库中。

登录-一种方法,该方法还将通过数据库检查登录名和密码是否存在用户(通过算法请求对密码进行加密,并在“用户”表中检查密码是否存在),如果是-您必须创建令牌并作为响应返回它(以访问您的门户)。

实际上,我们可以将其验证附加到模型(请参见https://fluentvalidation.net/),通过电子邮件通知恢复密码逻辑等。您可以在Internet上找到许多具有自定义授权和身份验证功能的示例。只需将您的功能分成多个部分并进行谷歌搜索即可。

答案 1 :(得分:1)

您可以从Identity Server 4中派生并创建自己的实现。他们具有使用OpenID和OAuth从中构建解决方案并与许多应用程序类型集成的良好基础。 https://identityserver4.readthedocs.io/en/latest/