加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

如何在ASP.NET MVC中手动设置用户的角色?

发布时间:2020-12-15 23:26:52 所属栏目:asp.Net 来源:网络整理
导读:我正在开展的这个项目要求我保留一个本地数据库的管理员用户,并为常规用户使用一个外部数据库.在admin db中通过认证的任何人都应该被分配为“admin”角色,任何通过其他数据库认证的人员将始终被分配一个“用户”角色. 我可以手动分配这些角色吗?我不需要角
我正在开展的这个项目要求我保留一个本地数据库的管理员用户,并为常规用户使用一个外部数据库.在admin db中通过认证的任何人都应该被分配为“admin”角色,任何通过其他数据库认证的人员将始终被分配一个“用户”角色.

我可以手动分配这些角色吗?我不需要角色提供者或任何东西的复杂性,因为我只使用这两个角色,这些角色将始终基于他们认证的数据库.

如果您可以提供示例代码或某些文档的链接,这将是一个巨大的帮助.谢谢!

编辑:

目前我没有使用角色提供者,并且创建一个似乎是一个麻烦.我知道它不是“最佳实践”,但我只需要在登录过程中分配2个角色中的1个(这绝对不会改变).将角色信息存储在数据库中也是没有意义的,因为用户已经通过角色将它们分成了2个dbs.

这里有一些伪代码:

if (AdminDB.ValidateUser(username,password)==true) {
     SetAuthCookie(username);
     AssociateUserWithRole(username,'admin');
} elseif (UserDB.ValidateUser(username,'user');
} else {
     // Login failed.
}

它的’ThisSession.AssociateUserWithRole’部分我不知道.基本上,一个用户被认证,我需要告诉.NET用户所属的角色.

解决方法

Implementing a role provider并不是特别困难 – 特别是如果你只是执行角色检查,而不是角色管理.只需要实现你需要的那些部分,剩下的就是NotImplementedExceptions.如果您只有一个应用程序,您也不必太关心该部分.请注意,您需要的部分将由框架如何使用它决定,而不是如何使用它.我认为,例如,您将需要实现返回所有用户角色的位,即使您只想检查它们是否处于特定角色.

也就是说,您可以省略整个RoleProvider并在会话中做整个事情.在这种情况下,您将实现自己的AuthorizeAttribute,并将其替换为您自己的身份验证和角色检查位.验证后将用户的角色存储在会话中,并使用您的属性和提供给您装饰它的方法/类的属性的参数进行检查.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读