使用User.Identity.Name作为角色

时间:2013-12-20 09:09:24

标签: c# asp.net security

我不使用会员资格。我想使用User.Identity.Name作为角色。

我在sql中有一个表:
tblA

 id    username   password   role
 1     a          a2         admin  
 1     b          b2         user  
登录页面中的

我将User.Identity.Name的第一个字符添加为角色。我有两个角色:
如果角色是用户:“U - ” +用户名
如果角色是管理员:“A - ” +用户名

然后将其用作User.Identity.Name

//....  
//if user is authenticated
//{
   string RoleAndUsername = user.role == "admin" ? "A-"+user.username : "U-"+user.username;
   FormsAuthentication.SetAuthCookie(RoleAndUsername, false);
//}
//...
管理页面中的

if (User.Identity.Name.Substring(0, 2) == "A-")
{
   //welcoe admin
}
else
{
   //access denied
}

使用角色管理器这个想法是否安全?

感谢。

2 个答案:

答案 0 :(得分:1)

  

使用角色管理器这个想法是否安全?

它可以安全,但对于需要维护它的开发人员来说并不是很明显。

此外,每次需要新角色时,您都必须更改代码,而不仅仅是配置 - 更多维护问题......

我不推荐这个想法...... User.Identity.Name对匿名用户有什么价值?

答案 1 :(得分:0)

找到解决方案:

我使用Role-Provider Implementation into LINQ

此实现使用实体框架6.0