Мы используем Angular 5.2 и недавно обновили шаблон SPA. Где в котором:
1) Новый шаблон SPA не имеет файла index.cshtml, теперь все запросы перенаправляются в файл index.html. поэтому мой первый вопрос:
Можем ли мы сохранить поведение файла бритвы в новом шаблоне?
2) Мы используем аутентификацию OpenIDConnect, например:
.AddOpenIdConnect(options =>
{
options.ClientId = azureAdConfig.ClientId;
options.ClientSecret = azureAdConfig.ClientSecret;
options.Authority = string.Format(azureAdConfig.AADInstance, azureAdConfig.Tenant);
options.ResponseType = OpenIdConnectResponseType.CodeIdToken;
options.Resource = azureAdConfig.ResourceURI_Graph;
// PostLogoutRedirectUri = Configuration["AzureAd:PostLogoutRedirectUri"],
options.Events = new AuthEvents(azureAdConfig, connectionStringsConfig);
});
Но после обновления шаблона загружается первый пользовательский интерфейс и не вызывается аутентификация.
Причина в том, что старый файл startup.cs имеет MapSpaFallbackRoute, который используется для перенаправления на действие Home Index, вызывающее аутентификацию:
routes.MapSpaFallbackRoute(
name: "spa-fallback",
defaults: new { controller = "Home", action = "Index" });
В Новом шаблоне, если мы установим эту конфигурацию, получим следующую ошибку:
Не удалось найти файл Views / Home / Index.cshtml
В качестве новой структуры проекта шаблона SPA нет этого файла. Если мы удалим эту конфигурацию, будет загружен только пользовательский интерфейс без обращений к серверу.
Итак, второй вопрос, как сохранить прежнее поведение аутентификации, вызываемое первым в этом новом шаблоне. какую конфигурацию мне здесь не хватает?