.net Core: угловое обновление шаблона SPA вызывает проблему аутентификации - PullRequest
0 голосов
/ 03 января 2019

Мы используем 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 нет этого файла. Если мы удалим эту конфигурацию, будет загружен только пользовательский интерфейс без обращений к серверу.

Итак, второй вопрос, как сохранить прежнее поведение аутентификации, вызываемое первым в этом новом шаблоне. какую конфигурацию мне здесь не хватает?

1 Ответ

0 голосов
/ 03 января 2019

Razor - это технология рендеринга на стороне сервера.SPA означает «все рендеринг выполняется на стороне клиента».Так что нет.Бритва - это противоположность SPA.

Вы не можете жениться на технологиях, поскольку они диаметрально противоположны.

Если вы пытаетесь написать SPA с помощью бритвы.Тогда ты должен принести гору Мухаммеду.Вы ДОЛЖНЫ запустить бритву на клиенте. Для этого существует бета-технология Microsoft под названием Blazor.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...