C# 如果用户登录到受保护页面,那么如何根据用户角色重定向?

C# 如果用户登录到受保护页面,那么如何根据用户角色重定向?,c#,asp.net,webforms,asp.net-identity,asp.net-roles,C#,Asp.net,Webforms,Asp.net Identity,Asp.net Roles,我正在使用Asp.net标识 目前系统中有7种类型或角色。一个用户只能有一个角色。 如果该用户登录到其角色没有权限访问的受保护页面,我如何根据该用户角色设置重定向URL 例如,Student角色的用户Student进入Teacher.aspx。他没有被授权,因此默认情况下,他被重定向到登录页面。但我更愿意根据他的角色将他重定向到其他地方,因为他已经登录。使用该属性。您可以这样使用它: [Authorize(Roles="AuthorizedRoleOne,AuthorizedRoleTwo")]

我正在使用Asp.net标识

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

例如,
Student
角色的用户
Student
进入
Teacher.aspx
。他没有被授权,因此默认情况下,他被重定向到登录页面。但我更愿意根据他的角色将他重定向到其他地方,因为他已经登录。

使用该属性。您可以这样使用它:

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

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

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