c#RoleProvider登录具有特定角色

时间:2012-08-06 11:13:54

标签: c# roleprovider role

我尝试为我的应用程序实现登录。 用户可以拥有多个角色(查看者,操作员,管理员等)。 但他必须选择一个他想要登录的角色, 所以他可能有管理员prviliges但他可以登录为没有管理员权限的“查看者”。

现在的问题是,如果我尝试使用管理员的RequiredRole属性来保护某些功能,那么即使用户具有管理员权限,用户也无法在以查看者身份登录时访问此功能。 / p>

这个beaviour是否受到框架的支持,或者之前有人做过类似的事情?

非常感谢您的帮助

1 个答案:

答案 0 :(得分:0)

当他以Viewer身份登录时尝试执行需要Admin的操作时,您没有指定要发生的事情,但由于您可以实现自己的角色提供程序,因此很容易做到。

您应该能够在会话中存储某些内容,或者您​​的用户主体对象指出“可用角色”(例如,其中一些将无法选择管理员),然后另一个用于选定角色。您需要做的就是将一些页面放入您的站点,以允许用户选择他们当前的角色。

由于您将使用自己的角色提供程序,因此您可以实现此目的,以便在检查角色时从会话(或用户主体)中提取相关信息。您仍然可以根据需要使用RequiredRole属性。

当您无权将您重定向到403页面(例如With ASP.NET membership, how can I show a 403?)时,有一些示例可以更改从重定向到登录表单的行为。然后,您可以在此页面上显示某些内容,以便用户在有可用的情况下切换到更高的角色。