我正在开发的项目需要我在本地保留管理员用户的数据库并在另一个外部数据库中使用普通用户。 任何通过管理员数据库身份验证的人都应被分配“管理员”角色,而通过其他数据库进行身份验证的任何人都将始终被分配“用户”角色。
我能手动分配这些角色吗? 我不需要角色提供程序或类似的复杂性,因为我仅使用这两个角色,这些角色将始终基于他们使用的身份验证数据库。
如果您可以提供示例代码或一些文档链接,那将是一个巨大的帮助。谢谢!
编辑:
目前我没有使用角色提供程序,创建一个似乎很麻烦。 我知道这不是最佳实践,但我只需要在登录时分配两个角色中的1个(这永远不会改变)。 还有,在数据库中存储角色信息也没有意义,因为用户已经根据其角色分为2个数据库。
以下是一些伪代码:
if (AdminDB.ValidateUser(username,password)==true) {
SetAuthCookie(username);
AssociateUserWithRole(username, 'admin');
} elseif (UserDB.ValidateUser(username,password)==true) {
SetAuthCookie(username);
AssociateUserWithRole(username, 'user');
} else {
// Login failed.
}
我不理解的是 'ThisSession.AssociateUserWithRole' 部分。基本上,一旦用户经过身份验证,我需要告诉.NET该用户属于哪个角色。
Session
,像这样:Session.Add("LoggedInRole", "admin");
,并且当我需要当前用户类型时,从Session
中读取它。Session
足够安全,可以将用户类型(角色)保存在其中吗? - MajidAuthorizeAttribute
一起使用。 - tvanfossonSession
来存储当前用户类型,我需要担心应用程序安全吗?” - Majid