ASP. NET CORE 3.1 Маршрутизация пользовательских колец для клиентов - PullRequest
0 голосов
/ 09 февраля 2020

У меня есть asp. net веб-форм, в которые я конвертирую. NET CORE. На сайте много пользователей, управляющих несколькими клиентами в системе. Пользователи должны иметь возможность управлять клиентами из нескольких вкладок браузера. Мое старое веб-приложение просто передавало параметр CustomerId, и мне приходилось управлять значением CustomerId на нескольких страницах, что было проблемой. Все страницы должны были использовать запрос: CustomerId = XXX

В ASP. net Core 3, есть ли простой способ сделать это в маршрутах и ​​создать URL-адреса? Я хотел бы добавить маршрут, который выглядит следующим образом?

  1. http://mywebsite.com/customer/XXX/SettingsPage это приведет к переходу на страницу бритвы /Pages/SettingsPage.cshtml

  2. http://mywebsite.com/customer/XXX/AdminArea/Users/Edit1 это будет направлять в область со страницей бритвы /Areas/AdminArea/Users/Edit.cshtml

Затем в моем коде я могу создать URL-адреса из маршрута, получить значение XXX и запросить таблицу клиентов.

1 Ответ

0 голосов
/ 10 февраля 2020

После прочтения этого поста Указывает вкладку c куки без использования sessionStorage или каких-либо HTML5 функций

Я использовал механизм перезаписи URL в ядре asp. net. Здесь находится образец проекта https://github.com/aspnet/AspNetCore.Docs/tree/master/aspnetcore/fundamentals/url-rewriting/samples/3.x/SampleApp

using (StreamReader apacheModRewriteStreamReader =
                File.OpenText("ApacheModRewrite.txt"))
            using (StreamReader iisUrlRewriteStreamReader =
                File.OpenText("IISUrlRewrite.xml"))
            {
                var options = new RewriteOptions()
                    .AddRedirect("redirect-rule/(.*)", "redirected/$1")
                    .AddRewrite(@"^rewrite-rule/(\d+)/(\d+)", "rewritten?var1=$1&var2=$2", skipRemainingRules: true)
                    .AddRewrite(@"customer(\d+)\/(.*)$", "$2?customerid=$1", skipRemainingRules: true)
                    .AddApacheModRewrite(apacheModRewriteStreamReader)
                    .AddIISUrlRewrite(iisUrlRewriteStreamReader)
                    .Add(RewriteRules.MethodRules.RedirectXmlFileRequests)
                    .Add(RewriteRules.MethodRules.RewriteTextFileRequests)
                    .Add(new RewriteRules.RedirectImageRequests(".png", "/png-images"))
                    .Add(new RewriteRules.RedirectImageRequests(".jpg", "/jpg-images"));

                app.UseRewriter(options);
            }
...