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

前端之家收集整理的这篇文章主要介绍了如何在ASP.NET MVC中手动设置用户的角色?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在开展的这个项目要求我保留一个本地数据库管理员用户,并为常规用户使用一个外部数据库.在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,并将其替换为您自己的身份验证和角色检查位.验证后将用户的角色存储在会话中,并使用您的属性和提供给您装饰它的方法/类的属性的参数进行检查.

原文链接:https://www.f2er.com/aspnet/250374.html

猜你在找的asp.Net相关文章