Asp.net core 2.0 - аутентификация файлов cookie
Я реализовал аутентификацию на основе утверждений в asp.net приложение core 2.0. но "
var identity = (ClaimsPrincipal)Thread.CurrentPrincipal;возвращайте нулевое время spme не всегда.
Что я уже пробовал:
Автозагрузки.в CS:
services.AddAuthentication("TalesSecurityScheme") .AddCookie("TalesSecurityScheme", options => { options.AccessDeniedPath = new PathString("/Security/Access"); options.Cookie = new CookieBuilder { //Domain = "", HttpOnly = true, Name = ".Tales.Security.Cookie", Path = "/", SameSite = SameSiteMode.Lax, SecurePolicy = CookieSecurePolicy.SameAsRequest };
options.LoginPath = new PathString("/Login/StartPage"); options.ReturnUrlParameter = "RequestPath"; options.SlidingExpiration = true; });
LoginPage:
// create claims List<Claim> claims = new List<Claim> { new Claim(ClaimTypes.Name, EncrypterDecrypter.Encrypt(loginEntity.UserName)), new Claim(ClaimTypes.Email, EncrypterDecrypter.Encrypt(loginEntity.Email)), new Claim(ClaimTypes.Role, loginEntity.Role), new Claim(ClaimTypes.Gender, EncrypterDecrypter.Encrypt(loginEntity.Gender)), new Claim(ClaimTypes.Sid, EncrypterDecrypter.Encrypt(loginEntity.UserId)) }; // create identity ClaimsIdentity identity = new ClaimsIdentity(claims, "cookie"); // create principal ClaimsPrincipal principal = new ClaimsPrincipal(identity); // Set current principal Thread.CurrentPrincipal = principal; HttpContext.User = principal; // sign-in await HttpContext.SignInAsync( scheme: "TalesSecurityScheme", principal: principal, properties: new AuthenticationProperties { //IsPersistent = true, ExpiresUtc = DateTime.UtcNow.AddMinutes(_config.Value.CookieTimeout) });
Домой:
var identity = (ClaimsPrincipal)Thread.CurrentPrincipal; if (identity != null) { // Get the claims values result = identity.Claims.Where(c => c.Type == ClaimTypes.Email) .Select(c => c.Value).SingleOrDefault(); }
Так что некоторое время возвращая null в
identityпеременная. Пожалуйста, подскажите, где я делаю что-то не так.