如何仅授予对定义的路由的访问权限?
How to grant access to only the routes defined?
我在 Startup.cs 中定义了以下代码:
services.AddMvc().AddRazorPagesOptions(options =>
{
options.Conventions.AddPageRoute("/ListVehicles", "/vehicle-list");
});
如何只允许使用 url "vehicle-list" 访问页面,而不是仅在 url 中键入 cshtml 文件名 ListVehicles?我试过 options.Conventions.Clear() 但没用。
您可以使用自定义 IPageRouteModelConvention
来实现此目的,该自定义 IPageRouteModelConvention
清除所需 PageRouteModel
中的 Selectors
列表:
services.AddMvc().AddRazorPagesOptions(options =>
{
options.Conventions.AddPageRouteModelConvention("/ListVehicles", model =>
{
model.Selectors.Clear();
});
options.Conventions.AddPageRoute("/ListVehicles", "vehicle-list");
});
现在请求 http://localhost/ListVehicles will result to 404 error, while request to http://localhost/vehicle-list 将 return ListVehicles.cshtml
页。
我在 Startup.cs 中定义了以下代码:
services.AddMvc().AddRazorPagesOptions(options =>
{
options.Conventions.AddPageRoute("/ListVehicles", "/vehicle-list");
});
如何只允许使用 url "vehicle-list" 访问页面,而不是仅在 url 中键入 cshtml 文件名 ListVehicles?我试过 options.Conventions.Clear() 但没用。
您可以使用自定义 IPageRouteModelConvention
来实现此目的,该自定义 IPageRouteModelConvention
清除所需 PageRouteModel
中的 Selectors
列表:
services.AddMvc().AddRazorPagesOptions(options =>
{
options.Conventions.AddPageRouteModelConvention("/ListVehicles", model =>
{
model.Selectors.Clear();
});
options.Conventions.AddPageRoute("/ListVehicles", "vehicle-list");
});
现在请求 http://localhost/ListVehicles will result to 404 error, while request to http://localhost/vehicle-list 将 return ListVehicles.cshtml
页。