[英]How to deploy to Azure an Asp.Net-Core 2.2 Razor Pages App with AzureAD Authentication
我正在使用ASP.NET Core 2.2和Razor Pages創建一個新的WebApp,並且想使用AzureAD對用戶進行身份驗證。 這可以在本地使用localhost正常工作,並且我可以順利登錄和注銷。 但是,當我將其發布到Azure時,我無法登錄。在Microsoft登錄頁面后,我重定向到WebApp到頁面“ /.auth/login/done”,該頁面顯示:“您已成功登錄。網站”,我可以返回我的網站,但我尚未登錄。
在Azure中的應用程序注冊中,我已為本地主機和應用程序配置了重定向Urls。 對於本地主機,它看起來像“ 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();
我期望的行為與在本地運行可運行的應用程序時相同。
要驗證對此文件夾中頁面的所有訪問,我們可以將Authorize
屬性添加到所有頁面模型類中,但是我們可以做得更好。 回到Startup類,我們可以添加一些Razor Pages約定以使我們的生活更輕松。
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc()
.AddRazorPagesOptions(options =>
{
options.Conventions.AuthorizeFolder("/Account");
});
...
}
這是有關使用asp.net剃須刀進行身份驗證的文章 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.