public override async Task <SignInStatus> PasswordSignInAsync(string userName, string password, bool isPersistent, bool shouldLockout) { try { User authUser = await ForumApi.AuthenticateUser(userName, password); User user = await UserManager.FindByIdAsync(authUser.Id); if (user == null) { var result = await UserManager.CreateAsync(authUser); if (!result.Succeeded) { return(SignInStatus.RequiresVerification); } user = authUser; } if (authUser.IsBanned) { return(SignInStatus.LockedOut); } await UserManager.UpdateAsync(user); await SignInAsync(user, isPersistent, true); return(SignInStatus.Success); } catch { return(SignInStatus.Failure); } }
public async Task <SignInStatus> CookieSignInAsync(string passHash, string sessionId, bool isPersistent, bool rememberBrowser) { try { User authUser = await ForumApi.AuthenticateSession(passHash, sessionId); User user = await UserManager.FindByIdAsync(authUser.Id); if (user == null) { var result = await UserManager.CreateAsync(authUser); if (!result.Succeeded) { return(SignInStatus.RequiresVerification); } user = authUser; } if (authUser.IsBanned) { return(SignInStatus.LockedOut); } await UserManager.UpdateAsync(user); await SignInAsync(user, isPersistent, rememberBrowser); return(SignInStatus.Success); } catch { return(SignInStatus.Failure); } }