Пожалуйста, помогите мне, я не знаю, что может быть не так, я пытался найти что-то в течение нескольких часов ...
Я хочу, чтобы компонент cookie пользователя входил в cookie в Blazor. Мне нужна возможность получать информацию из cookie во всех местах моего приложения.
В моем Startup.cs
я добавил в ConfigureServices
:
services.Configure<CookiePolicyOptions>(options =>
{
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme).AddCookie();
services.AddHttpContextAccessor();
services.AddScoped<HttpContextAccessor>();
services.AddHttpClient();
services.AddScoped<HttpClient>();
в Configure before endpoint
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseCookiePolicy();
app.UseAuthentication();
Затем в приложении я создал код для входа
public async Task Login()
{
var claims = new List<Claim> {
new Claim(ClaimTypes.Name, "1", ClaimValueTypes.String),
new Claim(ClaimTypes.Surname, "2", ClaimValueTypes.String),
new Claim(ClaimTypes.Country, "3", ClaimValueTypes.String),
new Claim("4", "4.1", ClaimValueTypes.String)
};
var userIdentity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);
var authProperties = new AuthenticationProperties
{
ExpiresUtc = DateTime.UtcNow.AddMinutes(20),
IsPersistent = false,
AllowRefresh = false
};
var userPrincipal = new ClaimsPrincipal(userIdentity);
await _httpContextAccessor.HttpContext.SignInAsync(
CookieAuthenticationDefaults.AuthenticationScheme,
userPrincipal);
}
, но в моем браузере нет файлов cookie, нет ошибок в коде / консоли.
Когда я смотрю на статус из
var z= _httpContextAccessor.HttpContext.SignInAsync(
CookieAuthenticationDefaults.AuthenticationScheme,
userPrincipal).Status
, я получаю сообщение об ошибке
System.Threading.Tasks.TaskStatus.Faults info.
Кто-нибудь может мне помочь? Мне нужна система аутентификации и авторизации, которая может предоставить мне необходимую информацию о пользователе.
Я буду благодарен за помощь
Спасибо