【问题标题】:How to deploy to Azure an Asp.Net-Core 2.2 Razor Pages App with AzureAD Authentication如何使用 AzureAD 身份验证将 Asp.Net-Core 2.2 Razor Pages 应用程序部署到 Azure
【发布时间】:2019-11-15 21:48:40
【问题描述】:

我正在使用 ASP.NET Core 2.2 和 Razor Pages 创建一个新的 WebApp,并且我想使用 AzureAD 对用户进行身份验证。这在本地主机上运行良好,我可以毫无问题地登录和注销。但是当我将它发布到天蓝色时,我无法登录。在微软登录页面之后,我被重定向到我的 WebApp 到页面“/.auth/login/done”,上面写着:“您已成功登录。返回到网站”,我可以返回我的网站,但我没有登录。

在 Azure 中的应用注册中,我为 localhost 和应用程序配置了重定向 URL。对于 localhost,它看起来像“https://localhost:44321/.auth/login/aad/callback”,对于应用程序,它看起来像“https://maywebapp.azurewebsites.net/.auth/login/aad/callback”。 我将应用程序配置为始终使用 https 以确保 Url 与 Azure 中配置的相同。

这是我的服务配置:

services.AddAuthentication(options =>
            {
                options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
                options.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
                options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
            })
                 .AddOpenIdConnect(options =>
                 {
                     options.Authority = Configuration["Microsoft:Authority"];
                     options.ClientId = Configuration["Microsoft:ClientId"];
                     options.CallbackPath = Configuration["Microsoft:CallbackPath"];
                     options.ResponseType = OpenIdConnectResponseType.IdToken;
                     options.SignedOutRedirectUri = Configuration["Microsoft:SignedOutRedirectUri"];
                     options.TokenValidationParameters.NameClaimType = "name";
                 })
                .AddCookie();

我希望与我在本地运行工作应用程序时的行为相同。

【问题讨论】:

    标签: c# azure razor-pages asp.net-core-2.2


    【解决方案1】:

    要使对该文件夹中页面的所有访问都经过身份验证,我们可以将Authorize 属性添加到所有页面模型类,但我们可以做得更好。回到 Startup 类,我们可以添加一些 Razor Pages 约定来让我们的生活更轻松。

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc()
                .AddRazorPagesOptions(options =>
                {
                    options.Conventions.AuthorizeFolder("/Account");
                });
        ...
    }
    

    这是一个关于使用 asp.net razor 进行身份验证的article

    【讨论】:

    • 嗨 Joey Cai,感谢您的回复 :D 但这无济于事...当我在计算机上本地运行时,我可以访问此页面。部署到天蓝色后它不起作用。有什么想法吗?
    猜你喜欢
    • 2018-10-23
    • 2020-11-10
    • 2019-01-14
    • 2018-07-28
    • 2019-08-22
    • 1970-01-01
    • 1970-01-01
    • 2019-12-13
    • 2020-07-27
    相关资源
    最近更新 更多