目前,我目前正在尝试在多域应用中添加一些具有管理员/登录经验的剃刀页面。
目前的设计如下:
https://admin.*
匹配时,admin和Account都应该可以访问,而admin路由也应该是主要路由,因此将/应该删除“区域” /Admin
。
第二部分使用Page Route Conventions相对容易:
private void Admin(PageRouteModel model)
{
var selectorCount = model.Selectors.Count;
var overrideSelectors = new List<SelectorModel>();
for (var i = 0; i < selectorCount; i++)
{
var selector = model.Selectors[i];
Console.WriteLine($"Selector: {selector.AttributeRouteModel.Template}");
var template = selector.AttributeRouteModel.Template.Replace("Admin", "").TrimStart('/');
overrideSelectors.Add(new SelectorModel
{
AttributeRouteModel = new AttributeRouteModel
{
Order = 1,
Template = template,
}
});
}
model.Selectors.Clear();
((List<SelectorModel>)model.Selectors).AddRange(overrideSelectors);
}
实际上我已经找到以下链接:.net core routing to a razor pages area based on current domain name?
但是我不确定那是不是要走的路,因为我需要一个中间件,而且我也不确定在使用asp-area,asp-page,等等...
是否有最佳实践或其他方法?