ASP.NET Identity是一种新的身份验证系统,旨在取代ASP.NET的现有成员资格系统。 ASP.NET Identity是一个基于OWIN(.NET的开放Web接口)的库。

当我们使用模板创建MVC项目时:
可以启用身份验证功能


选择"个人身份账户"意味着用户帐户信息将存储在应用程序数据库中(这意味着用户将不会使用任何基于外部/ OAuth的登录名)。

身份认证的类型:

1.选择认证的类型,创建MVC项目,查看引用会发现:会自动入EF和EF.sqlserver组件

并且在App_Data文件下,会有一个隐藏的数据库文件:
点击这个图标就可以显示了


数据库:

所有以"“AspNet"开头的表都是由ASP.NET Identity创建的,存储用户信息的AspNetUsers表还包含配置文件信息,例如FullName,BirthDate和Bio作为单独的列。
User与Role是一种N:N的关系,在AspNetUserRoles表中存储User和Role之间的
关系(相关联记录的id).



注册的User也已被添加到了表中:

2.查看Startup.cs部分类启动文件:

public void Configuration(IAppBuilder app)
{ConfigureAuth(app);
}

ConfigureAuth是其部分类Startup.Auth.cs中的方法:
在web.config文件中,有关其数据库连接:

<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\aspnet-Identity_Demo-20200528061927.mdf;Initial Catalog=aspnet-Identity_Demo-20200528061927;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>

把用户信息存储在应用程序的数据库中。

3.在Home控制器的About动作方法上添加角色控制:

[Authorize(Roles ="admin")]public ActionResult About(){ViewBag.Message = "Your application description page.";return View();}

在Account控制器的Register注册动作方法中,添加如下代码,给当前注册用户添加相应的角色(Role):

if (result.Succeeded)
{..........................................
UserManager.AddToRole(user.Id,"admin");//给当前用户添加"admin" 角色
...........................
}

测试案例:

注册成功后去查看数据库:
新的user已被添加

关系表中也生成了记录:
建立起N:N关系

一篇总结的十分详细的英文文章,可以去研究一下:
Securing ASP.NET MVC Applications with ASP.NET Identity

MVC之Identity身份验证相关推荐

  1. ASP.NET MVC中的身份验证

    传统的登录验证方式,是通过将用户的登录状态信息保存在服务端的Session中,再利用客户端浏览器的Cookie保存SessionID,这样浏览器每次在向服务端发起请求时,都会携带该Cookie值,服务 ...

  2. dhl:mvc用户登陆身份验证

    登录: [HttpPost]public ActionResult LoginSuccess() {bool rememberMe = Request["rememberMe"]. ...

  3. ASP.NET MVC使用Oauth2.0实现身份验证

    随着软件的不断发展,出现了更多的身份验证使用场景,除了典型的服务器与客户端之间的身份验证外还有,如服务与服务之间的(如微服务架构).服务器与多种客户端的(如PC.移动.Web等),甚至还有需要以服务的 ...

  4. 关于WEB ServiceWCFWebApi实现身份验证之WebApi篇

    之前先后总结并发表了关于WEB Service.WCF身份验证相关文章,如下: 关于WEB Service&WCF&WebApi实现身份验证之WEB Service篇. 关于WEB S ...

  5. ASP.NET MVC 4 (十三) 基于表单的身份验证

    在前面的章节中我们知道可以在MVC应用程序中使用[Authorize]特性来限制用户对某些网址(控制器/控制器方法)的访问,但这都是在对用户认证之后,而用户的认证则依然是使用ASP.NET平台的认证机 ...

  6. 如何基于asp.net core的Identity框架在mysql上作身份验证处理

    首先了解这个概念,我一开始也是理解和掌握基本的概念,再去做程序的开发.Identity框架是微软自己提供,基于.net core平台,可拓展.轻量 级.面向多个数据库的身份验证框架.IdentityS ...

  7. MVC身份验证及权限管理(转载)

    from https://www.cnblogs.com/asks/p/4372783.html MVC自带的ActionFilter 在Asp.Net WebForm的中要做到身份认证微软为我们提供 ...

  8. Asp.Net MVC 身份验证-Forms

    Asp.Net MVC 身份验证-Forms 在MVC中对于需要登录才可以访问的页面,只需要在对应的Controller或Action上添加特性[Authorize]就可以限制非登录用户访问该页面.那 ...

  9. asp.net mvc 身份验证中返回绝对路径的ReturnUrl

    在asp.net mvc进行身份验证只用在需要验证的Action或者Controller上标记一个[authorization]即可,如果用户没有登陆,此时将返回的ActionResult是HttpU ...

最新文章

  1. 利用Attribute简化Unity框架IOC注入
  2. WebAPI返回数据类型解惑 以及怎样解决Extjs无法解析返回的xml
  3. 速卖通物流发货怎么操作?“解读”重点国家市场物流状况
  4. 最强奥运会(互联网公司版)
  5. java开源游戏下载安装_开源java扫雷游戏,Swing版。
  6. MySQL杂记(更新时间——2014.05.23)
  7. Android开发之ListView的全选和全不选
  8. 3分钟掌握Quartz.net分布式定时任务的姿势
  9. layui 加载第三方插件
  10. 滤波电容、去耦电容、旁路电容的作用
  11. 突发!百度AI开发者大会李彦宏遭泼水 百度官方回应...
  12. ubuntu永久修改主机名
  13. python读取json并列_python解析含有重复key的json方法
  14. 60道计算机网络面试题(附答案,背诵版)
  15. Linux tar命令无法执行,Linux执行tar解压报错tar: Error is not recoverable: exiting now
  16. 一句话理解cmp_to_key函数
  17. NIOSII 软核的流水灯
  18. unity WWW读取StreamingAssets文件
  19. 阿里云部署视频点播:学习文档使用Java程序部署视频点播基础用法之入门
  20. 企业内部流程运转受阻?免费又高效不愧是它

热门文章

  1. maple 解代数方程组得多项式_利用修正影射法求组合KdV方程新的精确解
  2. Ubuntu18.04使用anaconda3安装tensorflow-gpu、pytorch
  3. 进化算法可以不再需要计算集群,开普敦大学的新方法用一块GPU也能刷新MNIST记录...
  4. 虚拟机可以当成服务器吗,虚拟机不仅仅可以用于部署服务器功能
  5. C#从入门到精通____5.1字符类Char的使用
  6. oracle启动shell脚本编写,Linux下的Oracle启动脚本及其开机自启动
  7. 毕设题目:Matlab车道线检测
  8. 2022年1月时事政治行业微信视频号企业认证排行榜:中央电视台运营的3个视频号上榜,央视新闻再度蝉联榜首(附月榜TOP20详单)
  9. 管理Kindle的“我的剪切”
  10. 半世纪以来最佳英文小说:《英国病人》