Hil*_*lls 2 c# asp.net-core identityserver4 blazor
在单独的项目中具有带有 IdentityServer4 和 Blazor 客户端的 Identity 用户数据库 API。我可以通过 Postman 注册一个新用户。在 Blazor 客户端中运行以下代码时(用于修补和学习)
@page "/registrer"
@using Models
@using System.Net.Http
@using IdentityModel.Client
@inject HttpClient Http
<EditForm Model="@registerUserModel" OnValidSubmit="@HandleValidSubmit">
<DataAnnotationsValidator />
<ValidationSummary />
<InputText id="email" type="email" @bind-Value="@registerUserModel.Email" />
<InputText id="password" type="password" @bind-Value="@registerUserModel.Password" />
<InputText id="confirmPassword" type="password" @bind-Value="@registerUserModel.ConfirmPassword" />
<button type="submit">Registrer deg</button>
</EditForm>
@code {
private RegisterUserModel registerUserModel = new RegisterUserModel();
public async Task HandleValidSubmit()
{
var newUser = new RegisterUserModel
{
Email = registerUserModel.Email,
Password = registerUserModel.Password,
ConfirmPassword = registerUserModel.ConfirmPassword
};
var client = new HttpClient();
var response = await client.RequestClientCredentialsTokenAsync(new ClientCredentialsTokenRequest
{
Address = "https://localhost:5001/connect/token",
ClientId = "client",
ClientSecret = "511536EF-F270-4058-80CA-1C89C192F69A",
Scope = "api1"
});
Http.SetBearerToken(response.AccessToken);
await Http.PostJsonAsync("https://localhost:5001/register", newUser);
}
}
Run Code Online (Sandbox Code Playgroud)
我能够获取访问令牌并验证 Blazor 客户端,但随后出现此错误
dbug:IdentityServer4.Hosting.CorsPolicyProvider[0] CORS 请求为路径:/register from origin: http://localhost:60013但被忽略,因为路径不是允许的 IdentityServer CORS 端点
为什么?当它在 Postman 中工作并且没有 CORS 政策时。曾试图让客户端使用AllowedCorsOrigins,只是为了检查。
浏览器安全性可防止网页向与提供该网页的域不同的域发出请求。此限制称为同源策略。同源策略可防止恶意站点从其他站点读取敏感数据。要从浏览器向具有不同来源的端点发出请求,端点必须启用跨源资源共享 (CORS)。
将客户端机密存储在 SPA 或移动应用程序中并不是一个好主意,因为每个用户都能够查看和操作所有代码。
小智 6
确保在 IS4 API 的 ConfigureServices 方法中配置了 CORS 策略,如下所示:
services.AddCors(options =>
{
options.AddPolicy("CorsPolicy",
builder => builder.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader());
});
Run Code Online (Sandbox Code Playgroud)
还要确保在 Configure 方法中添加您的策略:
app.UseCors("CorsPolicy");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7049 次 |
| 最近记录: |