Я знаю, что по этой общей теме есть довольно много вопросов и ответов, но с .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 работает только с этим кодом, а другой проект - нет?
CallBackPath
. Вы знаете, где это может быть ссылка? 20.02.2019[Authorize(AuthenticationSchemes = AzureADDefaults.AuthenticationScheme)]
или просто[Authorize]
будет работать? 20.02.2019ConfigureServices
, находится прямо над ним. Итак, я пытаюсь понять, как это возможно. Это кажется неправильным, но это работает. Это работает только для этого проекта, больше нигде. 20.02.2019