部署.Net7 Blazor WASM至Azure App Service遇防伪造SSL配置错误
问题描述
我正尝试将一个.NET 7 Blazor WASM应用部署到带有自定义域名的Azure App Service中,部署后出现如下错误:
System.InvalidOperationException: The antiforgery system has the configuration value AntiforgeryOptions.Cookie.SecurePolicy = Always, but the current request is not an SSL request.
我的App Service已配置为仅使用HTTPS,且已安装托管SSL证书。
我的相关配置
Startup.cs 中的防伪造功能配置
services.AddAntiforgery(options => { options.HeaderName = "X-XSRF-TOKEN"; options.Cookie.Name = "__someCookieName"; options.Cookie.SameSite = SameSiteMode.Strict; options.Cookie.SecurePolicy = CookieSecurePolicy.Always; });
_Host.cshtml 配置
我的Blazor应用由服务器提供索引页面,而非使用index.razor:
<script src="antiForgeryToken.js" ></script> @Html.AntiForgeryToken()
.csproj 配置
<Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>net7.0</TargetFramework> <UserSecretsId>{GUID}</UserSecretsId> <DockerDefaultTargetOS>Linux</DockerDefaultTargetOS> </PropertyGroup> <ItemGroup> <PackageReference Include="Azure.Identity" Version="1.9.0" /> <PackageReference Include="Azure.Security.KeyVault.Secrets" Version="4.5.0" /> <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Server" Version="7.0.10" /> <PackageReference Include="Microsoft.Azure.Cosmos" Version="3.35.3" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="7.0.10" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" PrivateAssets="All" Version="7.0.10" /> <PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="7.0.0" /> <PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.19.4" /> <PackageReference Include="OpenIddict.Abstractions" Version="4.7.0" /> <PackageReference Include="OpenIddict.AspNetCore" Version="4.7.0" /> <PackageReference Include="OpenIddict.EntityFrameworkCore" Version="4.7.0" /> <PackageReference Include="OpenIddict.Quartz" Version="4.7.0" /> <PackageReference Include="Quartz.Extensions.Hosting" Version="3.7.0" /> <PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="6.32.1" /> <PackageReference Include="Yarp.ReverseProxy" Version="2.0.1" /> </ItemGroup> <ItemGroup> <ProjectReference Include="..\Client\Client.csproj" /> <ProjectReference Include="..\Shared\Shared.csproj" /> </ItemGroup> </Project>
内容的提问来源于stack exchange,提问作者Travis Pettry
相关产品推荐
相关产品推荐

