【问题标题】:If user lands on protected page then how to redirect based on user role?如果用户登陆受保护的页面,那么如何根据用户角色进行重定向?
【发布时间】:2014-05-21 13:27:19
【问题描述】:

我正在使用 Asp.net Identity。

目前系统中有7种类型或角色。一个用户只能有 1 个角色。 如果用户登陆他的角色没有权限的受保护页面,我如何根据用户角色设置重定向 URL?

例如,角色StudentStudent 用户转到Teacher.aspx。他没有被授权,所以默认是他被重定向到登录页面。但我更愿意根据他的角色将他重定向到其他地方,因为他已经登录了。

【问题讨论】:

  • 到目前为止你尝试过什么?这里有很多关于某些页面的访问权限和重定向的问题。
  • 好吧,基本上我只是在我要保护的页面文件夹中使用 web.config。在那里我指定允许哪些角色。这是我现在唯一的授权。在我的 App_Start / Startup.Auth.cs 中,我指定了我的登录页面。现在出现了用户可能已通过身份验证但仍不允许查看其他角色的页面。我可以检查用户角色和重定向的每个页面的页面加载,但我想知道是否有更好的方法,也许只需要一些设置已经是 asp.net 身份的一部分。

标签: c# asp.net webforms asp.net-identity asp.net-roles


【解决方案1】:

使用System.Web.Mvc.AuthorizeAttribute 属性。你可以这样使用它:

[Authorize(Roles="AuthorizedRoleOne,AuthorizedRoleTwo")]
public ActionResult Index()

默认情况下,它会将未经授权的用户重定向到登录页面。如果这不是您想要的have a look at this question(您可以从属性继承并更改行为)。

【讨论】:

  • 网络表单也能做到这一点吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多