博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MVC_学习笔记_2_Authorize
阅读量:5930 次
发布时间:2019-06-19

本文共 2190 字,大约阅读时间需要 7 分钟。

<!DOCTYPE html>

MVC5_学习笔记_2_Authorize
1. 新建一个项目,选择MVC程序,选择Individual UserAccounts
在_Layout中插入了一个@Html.Partial("_LoginPartial") 在_LoginPartial中通过Request.IsAuthenticated判断是否已登录,
若为true通过User.Identity.GetUserName()显示用户名
若为False则显示登录和注册
<ul class="nav navbar-nav navbar-right">
<li>@Html.ActionLink("注册", "Register", "Account", routeValues: null, htmlAttributes: new { id = "registerLink" })</li>
<li>@Html.ActionLink("登录", "Login", "Account", routeValues: null, htmlAttributes: new { id = "loginLink" })</li>
</ul>

Authorize_Identity

1. 在 HomeController上插入[Authorize]表示HomeController需要登录权限才能访问2. 若在Action插入[Authorize]则表示当前Action需要登录才能访问3. 若插入[Authorize(Roles="Admin")] 表示拥有"Admin"权限的用户才可以访问4. 若插入[Authorize(User="Jack,Kate")] 表示只有Jack或Kate的才可以访问5. 若插入[AllowAnonymous]表示允许匿名访问6. 若原本已通过CodeFirst生成数据库,之后修改了数据库连接串中的数据库名,重新运行会生存新的数据库,此时需要先关闭VS,并到项目文件夹中删除数据库文件,在运行程序会报错说找不到数据库,这时就需要在View-Sql Server Object Explorer中卸载该数据库,在重新运行即可

创建用户并添加用户权限

1. 微软通过UserManager类进行用户管理(默认为管理ApplicationUser类,该类继承自IdentityUser)通过RoleManager(默认为管理ApplicationRole类,继承自IdentityRole)类进行权限管理,在Manager和DbContext通过一个Store进行交换数据,类似一个三层架构,需要一个    ```UserManager:var userManager = new UserManager
(new UserStore
(new ApplicationDbContext())); RoleManager:var roleManager = new RoleManager
(new RoleStore
(new ApplicationDbContext()));```2. 如需要对用户进行扩展,可以直接写在ApplicationUser类中添加需要的属性3. 对一个新的用户进行权限管理: 1. 先创建一个容器 var userStore = new UserStore
(ApplicationDbContext()) ;//讲数据上下文放入容器中 2. 创建一个管理实例 var userManager = UserManager
(userStore);//将容器放入里面 3. 生成一个用户 var user = ApplicationUser { UserName= "Jack" , EMail = "Jack@Test.com" }; 4. 通过userManager创建用户 userManager.Create(user,"password");//注意密码需要符合规则,否则会导致用户创建失败 5. 创建一个权限管理 步骤和创建用户一样 通过创建一个容器 讲容器放入权限管理对象中 6. var roleStore = new RoleStore
(ApplicationDbContext()); 7. var roleManager = new RoleManager
8. 通过roleManager创建一个新的用户权限 roleManager.Create(new IdentityRole( Name = { "Admin" })); 9. 最后通过userManager给用户赋权限 userManager.AddToRole(user.Id,"Admin"); 10. 用户权限就复制完毕,只需通过不同的[Authorize]标签来限制不同身份或用户所做的事即可

微软生成权限关系

t9Rj4MN.png

Y9cdh60.png

转载于:https://www.cnblogs.com/Jack-Blog/p/4255761.html

你可能感兴趣的文章
C# 无法恢复到按钮设置好的BackColor?只能恢复到Control BackColor(例如灰色)的解决方案:...
查看>>
Java Object类
查看>>
IOS libxml/tree.h file not found 解决方案
查看>>
MySQL数据类型--与MySQL零距离接触2-5字符型
查看>>
苹果iPhone5可能恢复2012年6月份发布
查看>>
css3实现渐变
查看>>
dfs.datanode.du.reserved 预留空间不生效的问题
查看>>
poweroff命令详解
查看>>
Hexo+Github搭建博客
查看>>
冲刺周期会议五
查看>>
20172304 蓝墨云实验哈夫曼树
查看>>
树桩数组维护区间不同值的个数
查看>>
再谈对协变和逆变的理解(Updated)
查看>>
innoDB 存储引擎
查看>>
一周总结
查看>>
javascript实现数字拼图
查看>>
java根据线程的id去获取线程
查看>>
hi3515芯片压缩的裸H264码流文件--欢迎下载测试
查看>>
Android 手机与电脑同步软件 豌豆荚手机精灵
查看>>
centos7的一些安装问题
查看>>