public void SignInUser(ApiUser user, bool isPersistent = false) { var cookieData = Mapper.Map<CookieViewModel>(user); var claims = new List<Claim> { new Claim(ClaimTypes.NameIdentifier, user.Email), new Claim(ClaimTypes.Email, user.Email), new Claim(ClaimTypes.Name, user.UserName), new Claim("User", cookieData.GetSerialized()) }; var identity = new ClaimsIdentity(claims, DefaultAuthenticationTypes.ApplicationCookie); AuthenticationManager.SignIn(new AuthenticationProperties() { AllowRefresh = true, IsPersistent = isPersistent, ExpiresUtc = DateTime.UtcNow.AddHours(12) }, identity); }
public async Task<IHttpActionResult> RegisterExternal(RegisterExternalViewModel model) { if (!ModelState.IsValid) { return BadRequest(ModelState); } var info = await Authentication.GetExternalLoginInfoAsync(); if (info == null) { return InternalServerError(); } var user = new ApiUser() { UserName = model.Email, Email = model.Email }; IdentityResult result = await UserManager.CreateAsync(user); if (!result.Succeeded) { return GetErrorResult(result); } result = await UserManager.AddLoginAsync(user.Id, info.Login); if (!result.Succeeded) { return GetErrorResult(result); } return Ok(); }
public async Task<HttpResponseMessage> Register(RegisterViewModel model) { if (!ModelState.IsValid) { return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); } var user = new ApiUser() { UserName = model.Email, Email = model.Email, Role = UserRole.User }; IdentityResult result = await UserManager.CreateAsync(user, model.Password); if (!result.Succeeded) { return Request.CreateErrorResponse(HttpStatusCode.BadRequest, string.Join(", ", result.Errors)); } return Request.CreateResponse(HttpStatusCode.OK); }