我想使用React-Router来处理来自访问者部分的大部分页面,同时创建单页应用程序。但是,我想确保如果用户输入/admin
,他就不会重定向"重定向"到root_path
到目前为止,我只设法将所有内容传递给通配符或制作"分区"如下:
root 'home#index'
# example 1
get '/*path' => 'home#index'
get '/articles' => 'home#articles_index'
# example 2
get '/articles/*all' => 'home#articles_index'
# vain try 1
get '/*path' => 'home#index', except: :admin
# vain try 2
get '/*path' => 'home#index', except: '/admin'
我发现了约束,但我意识到确保url被正确传递(即整数而不是字符串),但它没有""黑名单"网址。
有什么想法吗?
提前谢谢
答案 0 :(得分:1)
为此,您可以将带有约束的通配符段用于此目的。例如:
var claims = new List<Claim>
{
new Claim(ClaimTypes.Name, loginModel.UserName),
new Claim("StaffId", aartsUser.StaffID.ToString())
};
// Role Claims
foreach(Position p in aartsUser.Positions)
{
claims.Add(new Claim(ClaimTypes.Role, p.Role.RoleCd));
Claim newClaim = claims.Where(c => c.Value == p.Role.RoleCd).FirstOrDefault();
newClaim.Properties.Add("Description", p.Role.RoleName);
}
除非网址中有“admin”或“login”或“logout”,否则会将任何请求传递给# config/routes.rb
Rails.application.routes.draw do
root to: 'home#index'
get '*subroute', to: 'home#index', constraints: { subroute: /(?!admin|login|logout).*/ }
# all another routes below
end
。