2
При добавлении претензии к пользователю информация о претензиях не записывается как файл cookie на странице, и информация теряется для всех других запросов. Почему это происходит?Аутентификация претензий ASP.NET vNext
public async Task<IActionResult> Login(LoginViewModel model, string returnUrl = null)
{
if (ModelState.IsValid)
{
try
{
var authReq = new AuthenticationViewModel() { password = model.Password, username = model.UserName };
var userInfo = await _dataService.AuthenticateAsync(authReq);
var claims = new List<Claim>();
claims.Add(new Claim("username", userInfo.user.userName));
claims.Add(new Claim("AddtionalData", userInfo.AddtionalData));
var user = ClaimsPrincipal.Current;
var identity = user.Identities.Where(x => x.AuthenticationType == "Custom").FirstOrDefault();
if (identity == null)
identity = new ClaimsIdentity(claims.ToArray(), "Custom");
user.AddIdentity(identity);
return RedirectToAction("Users", "Index");
}
catch (Exception)
{
ModelState.AddModelError("", "Invalid username or password.");
}
}
// If we got this far, something failed, redisplay form
return View(model);
}
Вы используете кук межплатформенную для входа в пользователе? В этом сценарии вы должны делать context.Response.SignIn (identity). Кроме того, используются ASP.NET Identity для создания/хранения информации пользователя? –
Где вы проверяете, действительно ли пароль? Из какого типа переменная '_dataService'? – Epiplon
В моем случае служба данных - это интерфейс, который вызывает и API, который выполняет всю проверку для меня. Данные о том, что возврат возвращаются в качестве претензий. Извините за опечатки, делающие это с моего телефона –