gpt4 book ai didi

asp.net-mvc - 不同角色的不同默认路由

转载 作者:行者123 更新时间:2023-12-01 02:30:30 25 4
gpt4 key购买 nike

是否可以为不同的用户角色创建不同的默认路由?

例如

public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);

routes.MapRoute(
"Admin", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "totalrewardstatement", action = "Details", id = UrlParameter.Optional } // Parameter defaults
);

}

对于普通用户是否有上述默认路由,但如果管理员用户登录,则使用管理员路由?

最佳答案

使用自定义 路由约束 在 mvc 5 上为我做了诀窍。

    public class RoleConstraint : IRouteConstraint
{
public bool Match
(
HttpContextBase httpContext,
Route route,
string parameterName,
RouteValueDictionary values,
RouteDirection routeDirection
)
{
return httpContext.User.IsInRole(parameterName) ;
}
}

路由配置文件
    routes.MapRoute(
name: "Reader_Home",
url: "",
defaults: new { controller = "Reader", action = "Index", id = UrlParameter.Optional },
constraints: new { reader_role = new RoleConstraint() }
);

routes.MapRoute(
name: "Author_Home",
url: "",
defaults: new { controller = "Publication", action = "Index", id = UrlParameter.Optional },
constraints: new { author_role = new RoleConstraint() }
);

我使用 parameterName(author_role 和 reader_role)作为角色名称来检查简化。

关于asp.net-mvc - 不同角色的不同默认路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13288810/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com