c# - 具有 Azure Active Directory 的 Web 应用程序始终重定向到 '~

我正在尝试将 Azure Active Directory 用于 Azure 中的 Web 应用程序。登录后,我总是会重定向到“~/.auth/login/done”URL,并显示“您已成功登录”消息。

这是我的 Startup.cs:

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

    // Add authentication for Azure Active Directory using the Microsoft.AspNetCore.Authentication.AzureAD.UI:
    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)            
}

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseBrowserLink();
        app.UseDeveloperExceptionPage();
    }
    else
    {
        app.UseExceptionHandler("/Home/Error");
    }

    app.UseHttpsRedirection();
    app.UseStaticFiles();
    app.UseCookiePolicy();
    app.UseAuthentication();

    app.UseMvc(routes =>
    {
        routes.MapRoute(
            name: "default",
            template: "{controller=Home}/{action=Index}/{id?}");
    });
}

在 Azure 门户上,我已将重定向 URI 设置为默认的“~/.auth/login/aad/callback”。

这是我的 appsettings.json:

{
 "AzureAd": {
    "Instance": "https://login.microsoftonline.com/",
    "Domain": "mycompanyname.onmicrosoft.com",
    "TenantId": "... (my tenant ID) ...",
    "ClientId": "... (my client ID) ...",
    "CallbackPath": "/.auth/login/aad/callback"
 }
}

为什么我无法访问应用程序的任何页面以及为什么我总是重定向“~/.auth/login/done”URL?

最佳答案

您可以使用 post_login_redirect_url 查询字符串参数来执行此操作。

您需要做的是将用户导航到

 /.auth/login/aad?post_login_redirect_url=YOUR_URL

例如,如果您希望用户登录后自动导航至 /welcome.html,您可以将登录重定向设置为 ~/.auth/login/aad?post_login_redirect_url =/welcome.html,用户将被重定向到此页面而不是通用的欢迎页面。引用这个thread .

关于c# - 具有 Azure Active Directory 的 Web 应用程序始终重定向到 '~/.auth/login/done' URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57094064/

相关文章:

git - 为什么每次更新变更日志时我的旧提交都会重新出现?

php - 使用 Gsuite 邮件时电子邮件在 laravel 上不起作用

ruby-on-rails - Rails update_attributes 如果值存在,否则为

r - 提取 stat_smooth 线拟合的方法

kubernetes-helm - 错误 : validation failed: unable t

python - 需要使用 pyodbc 将较小的批处理插入到 Teradata 表中

jestjs - 如何模拟慢速网络连接?

python-3.x - 如何通过手机号码获取IP地址?

vue.js - 使用 Vue.js 更改 Prop 后可编辑 div 中的插入符号位置

php - 如何在 IBM Natural Language Understanding 的 PHP