Asp.net 允许一个用户同时是;“用户”;及;行政";角色
我有一个问题,想知道是否有人有一个建议。在我正在开发的一个网站上,我使用Asp.net简单成员身份,但现在我正在迁移到Asp.net Identity 2。我有两个角色:“用户”和“管理员”。管理员可以执行管理员任务、配置、数据库管理等,但不能执行“用户操作”。因此,管理员不是“超级用户”-它只是具有不同的功能 我面临的问题是,用户的唯一标识符是他们的电子邮件。因此,如果有人想独自使用系统,他必须创建两个帐户(一个管理员和一个用户),因此他必须有两封电子邮件。这是一个问题。我可以很容易地向该用户添加“用户”和“管理员”角色,但这会使系统更难用于“用户”角色,我希望避免这种情况 我使用角色来授权服务器上的路由(MVC和web api)和UI(SPA)上的基本(如隐藏元素)内容,因此,它已经是系统的一部分,但如果需要,我愿意更改它 我在想做这样的事情: 当用户被配置为管理员时,每次登录时,我都会询问他是否希望成为此会话的管理员或用户。Asp.net 允许一个用户同时是;“用户”;及;行政";角色,asp.net,security,authorization,roles,Asp.net,Security,Authorization,Roles,我有一个问题,想知道是否有人有一个建议。在我正在开发的一个网站上,我使用Asp.net简单成员身份,但现在我正在迁移到Asp.net Identity 2。我有两个角色:“用户”和“管理员”。管理员可以执行管理员任务、配置、数据库管理等,但不能执行“用户操作”。因此,管理员不是“超级用户”-它只是具有不同的功能 我面临的问题是,用户的唯一标识符是他们的电子邮件。因此,如果有人想独自使用系统,他必须创建两个帐户(一个管理员和一个用户),因此他必须有两封电子邮件。这是一个问题。我可以很容易地向该用户
如果他选择“用户”,我会为他设置一个用户角色并登录。
如果他选择“管理员”,我会为他设置一个“管理员”角色并登录 你觉得怎么样?有人有更好的主意吗?这感觉像是黑客攻击,而且黑客攻击与安全性不匹配:/
我发现了一个问题-有时我需要向管理员发送电子邮件(当他们离线时)。这样,我就不能只依赖UserRole表,还必须始终检查User.IsAdministrator标志。这不是一个大问题,但会给事情增加一点复杂性。您需要使用角色。一个用户可以同时是多个角色的成员,因此您可以有一个用户是“用户”角色的成员,一个用户是“管理员”角色的成员,或者一个用户同时是“用户”和“管理员”角色的成员 你已经提出了这个想法,我就是这样做的,如果你想控制他们能看到什么(这样“管理员”成员只能看到通常“用户”角色用户可以看到的东西),那么你可以在任何表单上(或将其放在母版页上)有一个下拉列表,允许用户打开和关闭管理员内容,然后,您可以记住他们在会话对象中的选择,并在每次加载页面时引用该选择。e、 g
if user.IsInRole("Admin") and IsNothing(Session("HideAdmin")) Then
'Show Admin Stuff
End If
或者类似的问题。这类问题在数据库设计时解决,而不是在开发时解决。你别无选择,我认为最好的办法是创建第三个拥有这两种权利的用户