У меня проблема, я не понимаю, как отлаживать. Я ищу идеи.
У меня есть C# .NetCore 2.2 код, который работает на моем рабочем столе через IIS Express. Я могу "Publi sh" на тестовый сервер.
Первое вероятное осложнение заключается в том, что мы используем продукт под названием «Siteminder» для аутентификации веб-сайта. SM настраивается для каждого сайта, для каждого приложения, для каждого элемента пути запроса, что вам нужно. Он наблюдает за входящим трафиком c, и если этот трафик c соответствует конфигурации, то SM захватывает запрос; вставляет себя как агент авторизации; и, при успешной авторизации, отправляет начальный запрос на сервер. В нашем случае он получает информацию об аутентификации из домена AD.
Вторым возможным осложнением является то, что тестовый сайт называется примерно так:
test-apps.mycompany.com
Мое приложение - одно из многих, под которым можно сидеть этот сайт, поэтому фактический URL-адрес приложения будет выглядеть следующим образом:
test-apps.mycompany.com/myApp
Затем мы перейдем к разделу controller / method / args, и это было для меня нечетко.
My Startup.cs
В файле есть раздел маршрута, который выглядит следующим образом:
var rules = new RewriteOptions().AddRedirect(
"^$", "/myMainController/Index"
);
app.UseRewriter(rules);
app.UseMvc(routes => {
routes.MapRoute(
"default",
"{controller=myMainController}/{action=Index}"
);
routes.MapRoute(
"people",
"{controller=myMainController}/{action=People}/{groupName}"
);
});
Вопрос:
Когда я публикую sh, это на тестовом сервере, который запускает браузер, который пытается добраться до приложения. Запрос захватывается Siteminder, как я ожидаю. Я могу проверить подлинность через SM просто отлично. В результате отображается URL:
test-apps.mycompany.com/myApp
not
test-apps.mycompany.com/myApp/myMainController/Index
В результате я получаю страницу ошибки 401. Если я тогда попытаюсь установить путь:
test-apps.mycompany.com/myApp/myMainController/Index
, я получу тот же результат. Журналы веб-сервера абсолютно бесполезны.
Что я пробовал?
Я тоже пытался изменить маршруты:
var rules = new RewriteOptions().AddRedirect(
"^$", "/myApp/myMainController/Index"
);
app.UseRewriter(rules);
app.UseMvc(routes => {
routes.MapRoute(
"default",
"/myApp/{controller=myMainController}/{action=Index}"
);
routes.MapRoute(
"people",
"/myApp/{controller=myMainController}/{action=People}/{groupName}"
);
});
Я изменил путь назначения Publish
с:
test-apps.mycompany.com/myApp
до
test-apps.mycompany.com/myApp/myMainController/Index
Это действительно помогло с частью URL, но страница 401 все еще появляется. Я не уверен, что попробовать дальше. Идеи?