Я пытаюсь вызвать вход в систему angular.
Login(reqobj: { RedirectUrl: string; }) {
var Url = this.GeturlFromServerName(this.baseUrl) + "Account/SignIn";this.baseUrl+reqobj.RedirectUrl;
return this.http.get(Url, {
headers: {
'Content-Type': 'application/json;charset=UTF-8',
'Accept': 'application/json; charset=utf-8',
"Access-Control-Allow-Origin": "*"
} })
}
Контроллер
[EnableCors("CorsPolicy")]
[AllowAnonymous]
[HttpGet, Route("SignIn")]
public async Task SignIn(string redirectUri)
{
if (!HttpContext.User.Identity.IsAuthenticated)
{
try
{
await HttpContext.ChallengeAsync(OpenIdConnectDefaults.AuthenticationScheme, new AuthenticationProperties() { RedirectUri = redirectUri });
}
catch (Exception e)
{
_loggWriter.LogError("Login Exception :", e);
}
}
}
Startup.cs
services.AddAuthentication(options =>
{
options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
})
.AddCookie()
.AddOpenIdConnect(o =>
{
o.ClientId = clientId;
o.ResponseType = "id_token";
o.GetClaimsFromUserInfoEndpoint = true;
o.MetadataAddress = metadataAddress;
o.SignedOutRedirectUri = PostLogoutRedirectUri;
o.Events = new OpenIdConnectEvents
{
OnRemoteFailure = OnAuthenticationFailed
};
});
services.AddAuthorization();
services.AddCors(options =>
{
options.AddPolicy("CorsPolicy",
builder => builder.WithOrigins("https://localhost:44381", "https://sts.xxxxxx.com")
.AllowAnyHeader()
.AllowAnyMethod()
.AllowCredentials());
});
private Task OnAuthenticationFailed(RemoteFailureContext arg)
{
arg.HandleResponse();
arg.Response.Redirect("/?errormessage=" + arg.Failure.Message);
return Task.FromResult(0);
}
publi c void Configure (приложение IApplicationBuilder, IWebHostEnvironment env) {app.UseHttpsRedirection ();
app.UseRouting();
app.UseFileServer();
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error");
}
app.UseStaticFiles();
if (!env.IsDevelopment())
{
app.UseSpaStaticFiles();
}
app.UseCors("CorsPolicy");
app.UseAuthentication();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
app.UseSpa(spa =>
{
spa.Options.SourcePath = "ClientApp";
if (env.IsDevelopment())
spa.UseAngularCliServer(npmScript: "start");
});
}
Получение ошибки Некоторые вещи, как эта Доступ к XMLHttpRequest at 'https://.. из источника 'https://localhost: 44381 ' заблокировано политикой CORS: Ответ на предпечатный запрос не проходит проверку контроля доступа: заголовок «Access-Control-Allow-Origin» отсутствует запрашиваемый