public ActionResult Signup(SignupViewModel model, string returnUrl) { if (ModelState.IsValid) { if (context.Users.Any(u => u.EmailAddress.Equals(model.Email))) { ModelState.AddModelError("email", "Denne email er allerede i brug."); } else { User u = new User { Roles = new[] { Role.UserRole }, EmailAddress = model.Email, Pw = PasswordHash.CreateHash(model.Password), Name = model.Name }; context.Users.Add(u); context.SaveChanges(); var serializeModel = new PrincipalSerializeModel() { UserId = u.Id, Roles = u.Roles }; string userData = JsonConvert.SerializeObject(serializeModel); FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(1, u.EmailAddress, DateTime.Now, DateTime.Now.AddMinutes(15), !string.IsNullOrWhiteSpace(model.RememberMeSignup), userData); string encTicket = FormsAuthentication.Encrypt(authTicket); HttpCookie faCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket); Response.Cookies.Add(faCookie); bool whitespace = !string.IsNullOrWhiteSpace(returnUrl); if (whitespace) { return(Redirect(returnUrl)); } return(RedirectToAction("Index", "User")); } } AuthViewModel m = new AuthViewModel { LoginViewModel = new LoginViewModel(), SignupViewModel = model }; return(View("Index", m)); }
public override Task OnConnected() { User user = Context.User as User; if (user != null) { // Get a db instance instead user = DB.GetUserById(user.Id); Clients.Caller.UpdateUsername(user.Name); Clients.Caller.SendUserId(user.Id); Clients.Caller.LoginSuccess(); foreach (Channel channel in user.ChannelsIn) { Clients.Caller.AppendChannel(channel.ToSimpleChannel(channel.IsUserAdministrator(user))); } user.Connections.Add(new Connection() { ConnectionId = Context.ConnectionId }); } else { Connection con = DB.Connections.Find(Context.ConnectionId); if (con != null) { return(base.OnConnected()); } user = new User { Ip = GetIpAddress() }; user.Connections.Add(new Connection(user) { ConnectionId = Context.ConnectionId }); DB.Users.Add(user); DB.SaveChanges(); Clients.Caller.SendUserId(user.Id); } return(base.OnConnected()); }