剃刀页面区域和基于域的路由

时间:2019-04-24 10:21:33

标签: asp.net-core .net-core

目前,我目前正在尝试在多域应用中添加一些具有管理员/登录经验的剃刀页面。

目前的设计如下:

  • 地区:
    1. 管理员
    2. 帐户
现在,仅当域与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,等等...

是否有最佳实践或其他方法?

0 个答案:

没有答案