Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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());
        }