小编jaz*_*rkc的帖子

Azure AD 未在 .NET Core 3.1 中进行身份验证

我正在尝试让 Azure AD 在现有应用程序中工作。我按照说明查看了 Microsoft 站点(https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-v2-aspnet-core-webapp)中的示例代码,没有运气。示例代码使用 .NET Core 2.1。我可以让它与 .NET Core 2.1 一起使用,但 3.1 因几个原因而变得不合时宜。

  1. 与示例代码相比,需要将 EnableEndpointRouting 设置为 false。
  2. 与示例代码相比,我尝试删除 AddMvc 上的设置兼容性版本,并尝试将其设置为 3.0。

当我在 .NET Core 3.1 中运行它时,它所做的只是加载页面并且从不调用/执行身份验证,并且表现得好像控制器上没有 Authorize 标记。

我在控制器的类级别上有一个 Authorize 标签。

启动.cs:

...
            services.Configure<CookiePolicyOptions>(options =>
            {
                options.CheckConsentNeeded = context => true;
                options.MinimumSameSitePolicy = SameSiteMode.None;
            });

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

            services.Configure<OpenIdConnectOptions>(AzureADDefaults.OpenIdScheme, options =>
            {
                options.Authority = options.Authority + "/v2.0/";
                options.TokenValidationParameters.ValidateIssuer = false;
            });

            services.AddMvc(options =>
            {
                var policy = new AuthorizationPolicyBuilder()
                    .RequireAuthenticatedUser()
                    .Build();
                options.Filters.Add(new AuthorizeFilter(policy));
                options.EnableEndpointRouting …
Run Code Online (Sandbox Code Playgroud)

c# azure asp.net-core-3.1

3
推荐指数
1
解决办法
3721
查看次数

标签 统计

asp.net-core-3.1 ×1

azure ×1

c# ×1