MVC之Identity身份验证

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

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

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值