WedX - журнал о программировании и компьютерных науках

.Net Core 2.2 Сгенерированная аутентификация AzureAD - InvalidOperationException: нет authenticationScheme и DefaultChallengeScheme?

Я знаю, что по этой общей теме есть довольно много вопросов и ответов, но с .Net Core 2.2 требуемый / сгенерированный код отличается.

Если вы создадите новый проект .Net Core 2.2 в VisualStudio с аутентификацией домена, используя AzureAD, вы получите очень легкий проект, который правильно аутентифицируется. В Startup.cs вы найдете приведенный ниже код, который включает этот домен AzureAD Auth, а затем вы соответственно используете атрибут [Authorize]. Проблема в том, что вы попытаетесь использовать его в другом проекте .Net Core 2.2.

services.AddAuthentication(AzureADDefaults.AuthenticationScheme)
                .AddAzureAD(options => Configuration.Bind("AzureAd", options));

            services.AddMvc(options =>
            {
                var policy = new AuthorizationPolicyBuilder()
                    .RequireAuthenticatedUser()
                    .Build();
                options.Filters.Add(new AuthorizeFilter(policy));
            })
            .SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

Я скопировал это вместе с соответствующими настройками в проект .Net Core 2.2, который я уже создал. Это не такой легкий проект, но не обширный и довольно простой. Я получаю сообщение об ошибке, InvalidOperationException: No authenticationScheme was specified, and there was no DefaultChallengeScheme found

Вот и прошу понять, как такое возможно? Как в Visual Studio сгенерированный проект .Net Core 2.2 работает только с этим кодом, а другой проект - нет?


Ответы:


1

вы можете попробовать добавить следующее:

services.AddAuthentication(options =>
            {
                options.DefaultAuthenticateScheme = AzureADDefaults.AuthenticationScheme;
                options.DefaultChallengeScheme = AzureADDefaults.AuthenticationScheme;
            }).AddAzureAD 

и т.д...

вы можете выбрать схемы в атрибуте Authorize:

[Authorize(AuthenticationSchemes = AzureADDefaults.AuthenticationScheme)]
19.02.2019
  • Я попробую это сделать. Когда я это делаю, мне предоставляется исключение, в котором говорится, что должна быть предоставлена ​​опция CallBackPath. Вы знаете, где это может быть ссылка? 20.02.2019
  • Кроме того, если я использую вышеуказанное, всегда ли мне нужно выбирать схему аутентификации по атрибуту [Authorize(AuthenticationSchemes = AzureADDefaults.AuthenticationScheme)] или просто [Authorize] будет работать? 20.02.2019
  • Это часть ваших параметров в AddAzureAd (options = ›options.CallbackPath; я думаю, вам также придется указать промежуточному программному обеспечению использовать аутентификацию, например: app.UseAuthentication (); попробуйте, но я думаю, вам придется предоставить настраиваемая схема аутентификации. 20.02.2019
  • Хорошо, я возьмусь за дело. Но меня все еще беспокоит то, что если вы создаете новое приложение Dotnet Core 2.2 с помощью Visual Studio, единственный код, который он имеет под ConfigureServices, находится прямо над ним. Итак, я пытаюсь понять, как это возможно. Это кажется неправильным, но это работает. Это работает только для этого проекта, больше нигде. 20.02.2019
  • Новые материалы

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

    Учебные заметки: создание моего первого пакета Node.js
    Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

    Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
    Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..

    ИИ в аэрокосмической отрасли
    Каждый полет – это шаг вперед к великой мечте. Чтобы это происходило в их собственном темпе, необходима команда астронавтов для погони за космосом и команда технического обслуживания..


    Для любых предложений по сайту: wedx@cp9.ru