Authentication 在Active Directory不工作的情况下注销

Authentication 在Active Directory不工作的情况下注销,authentication,session,cookies,active-directory,Authentication,Session,Cookies,Active Directory,我在git遵循了本文档指南,我的代码指向netCore3.1: 但在我的案例中,这在执行时是失败的 我的启动配置: public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else

我在git遵循了本文档指南,我的代码指向netCore3.1:

但在我的案例中,这在执行时是失败的

我的启动配置:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseExceptionHandler("/Home/Error");
            // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
            app.UseHsts();
        }
        app.UseHttpsRedirection();
        app.UseStaticFiles();

        app.UseRouting();
        app.UseCookiePolicy();
        app.UseAuthentication();
        app.UseAuthorization();
        app.UseSession(); //cambio
        app.UseEndpoints(endpoints =>
        {
            endpoints.MapControllerRoute(
                name: "default",
                pattern: "{controller=Home}/{action=Index}/{id?}");
            //endpoints.MapRazorPages();
        });
}
我的启动
ConfigureServices

public void ConfigureServices(IServiceCollection services)
{
        services.AddAuthentication(AzureADDefaults.AuthenticationScheme)
            .AddAzureAD(options => Configuration.Bind("AzureAd", options));

        services.AddControllersWithViews(options =>
        {
            var policy = new AuthorizationPolicyBuilder()
                .RequireAuthenticatedUser()
                .Build();
            options.Filters.Add(new AuthorizeFilter(policy));
        });
        services.AddRazorPages();
        //Dependency Injection
        services.ResolveThisContext(Configuration);
        services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
        services.AddMvc(config =>
        {
            config.Filters.Add(new CustomActionFilter());
        });
        services.AddDistributedMemoryCache();
        services.AddSession(options =>
        {
            options.IdleTimeout = TimeSpan.FromDays(1); // It depends on user requirements.
        });

        services.Configure<OpenIdConnectOptions>(OpenIdConnectDefaults.AuthenticationScheme, options =>
        {
            options.Events.OnRedirectToIdentityProviderForSignOut = async context =>
            {
                //Your logic here
            };
        });

        var config = new ConfigurationBuilder() //newForAD
            .SetBasePath(System.IO.Directory.GetCurrentDirectory())//newForAD
            .AddJsonFile("appsettings.json", false)//newForAD
            .Build();//newForAD
}
我的看法是:

@{
ViewData[“Title”]=“已注销”;
}
@ViewData[“标题”]

您已成功注销。

public IActionResult SignOut([FromRoute] string scheme)
{
        scheme ??= OpenIdConnectDefaults.AuthenticationScheme;
        var callbackUrl = Url.Page("/Account/SignedOut", pageHandler: null, values: null, protocol: Request.Scheme);
        return SignOut(
             new AuthenticationProperties
             {

                 RedirectUri = callbackUrl,
             }
             ,
             CookieAuthenticationDefaults.AuthenticationScheme,
             scheme
             );
}