0
방금 ASP.MVC 프로젝트를 만들었으며 임시 로그인을 제공하려고합니다 (게스트 로그인이라고 부름). 이것은 등록을 요구하지 않아야하며이 사용자에 대한 데이터베이스 항목 작성을 피하고 싶습니다.존재하지 않는 사용자가있는 SignInManager.SignIn
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
{
if (!ModelState.IsValid)
return View(model);
if (model.GuestLogin) {
var user = UserManager.FindByEmail(model.Email);
if (user != null) {
ModelState.AddModelError("", "Invalid login attempt.");
return View(model);
}
var appUser = new ApplicationUser() { Email = model.Email, UserName = model.Email, Id = Guid.NewGuid().ToString() };
//var creationResult = UserManager.Create(appUser);
SignInManager.SignIn(appUser, false, model.RememberMe);
return RedirectToLocal(returnUrl);
}
//common login stuff ...
}
로그인의 호출이 실패 :
나는에 의해 AccountController의 기본 로그인 액션을 확장System.InvalidOperationException : 사용자 아이디를 찾을 수 없습니다.
어떻게 든 이것을 보관할 수 있습니까, 아니라? 악마는 과정에서 기호 중 일부 사용자 엔티티와 관련된 주장 (예를 들어, 사용자 역할 또는 보안 스탬프 주장을)를 추가하려고 ClaimsIdentityFactory에 놓여 사전 좋아