예제 #1
0
		private void detach_Users(User entity)
		{
			this.SendPropertyChanging();
			entity.UserRank = null;
		}
예제 #2
0
		private void detach_Refferers(User entity)
		{
			this.SendPropertyChanging();
			entity.Refferer = null;
		}
예제 #3
0
		private void attach_Users(User entity)
		{
			this.SendPropertyChanging();
			entity.UserRank = this;
		}
예제 #4
0
		private void attach_Refferers(User entity)
		{
			this.SendPropertyChanging();
			entity.Refferer = this;
		}
예제 #5
0
 /// <summary>
 /// Регистрирует пользователя в системе
 /// </summary>
 /// <param name="user"></param>
 public void RegisterUser(User user)
 {
     user.Rank = 1;
     DataContext.Users.InsertOnSubmit(user);
     SubmitChanges();
 }
예제 #6
0
        public ActionResult Register(RegistrationModel model)
        {
            // Проверяем уникальность логина
            var exist = UsersManager.FindUserByLogin(model.Login) != null;
            string message = "";
            if (!exist)
            {
                var user = new User()
                    {
                        FirstName = model.FirstName,
                        LastName = model.LastName,
                        Login = model.Login,
                        PasswordHash = PasswordUtils.QuickMD5(model.Password),
                        AvatarUrl = "/Content/images/layout/tmpavatar.png",
                        IsAdmin = false,
                        Status = (short) UserStatuses.Active,
                        AccountLevel = (short) AccountLevels.Common,
                        LoginProvider = "bee",
                        Email = model.Email,
                        ReferalId = model.ReffererId.HasValue ? model.ReffererId.Value : -1,
                        DateRegistred = DateTime.Now
                    };
                UsersManager.RegisterUser(user);

                message = "Вы были успешно зарегистрированы в системе";
                AuthorizeUser(user,true);
            }
            else
            {
                message = "Пользователь с таким логином уже существует";
            }

            ViewBag.message = message;
            return View("RegistrationResult");
        }
예제 #7
0
        public ActionResult LoginSocial(string token)
        {
            // Запрашиваем данные
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(String.Format("http://ulogin.ru/token.php?token={0}&host={1}",token,"http://beepas.ru/account/login-social"));
            request.Method = "GET";
            WebResponse response = request.GetResponse();
            StreamReader sr = new StreamReader(response.GetResponseStream(), System.Text.Encoding.UTF8);
            string json = sr.ReadToEnd();
            sr.Close();
            response.Close();

            // Декодируем
            dynamic dataObject = new DynamicJsonObject(json);
            string network = dataObject.network;
            string identity = dataObject.identity;
            string firstName = dataObject.first_name;
            string lastName = dataObject.last_name;
            string photoUrl = dataObject.photo_big;
            string email = dataObject.email;

            // Ищем пользователя
            var user = UsersManager.FindUserByLogin(identity);
            if (user == null)
            {
                user = new User()
                    {
                        FirstName = firstName,
                        LastName = lastName,
                        Login = identity,
                        PasswordHash = PasswordUtils.QuickMD5(PasswordUtils.GeneratePassword(10)),
                        AvatarUrl = photoUrl,
                        IsAdmin = false,
                        Status = (short) UserStatuses.Active,
                        AccountLevel = (short) AccountLevels.Common,
                        LoginProvider = network,
                        Email = email,
                        ReferalId = -1,
                        DateRegistred = DateTime.Now
                    };
                UsersManager.RegisterUser(user);
            }
            else
            {
                // Обновляем данные
                user.FirstName = firstName;
                user.LastName = lastName;
                user.AvatarUrl = photoUrl;
                user.DateModified = DateTime.Now;
                UsersManager.SubmitChanges();
            }

            // Авторизуем пользователя в системе
            AuthorizeUser(user,true);

            return RedirectToAction("Index", "Apiary");
        }
예제 #8
0
        /// <summary>
        /// Авторизирует текущего пользователя
        /// </summary>
        /// <param name="user">Пользователь которого установить как текущего</param>
        /// <param name="remember">Запомнить ли пользователя</param>
        public void AuthorizeUser(User user, bool remember = true)
        {
            CurrentUser = user;
            if (remember)
            {
                // Устанавливаем собственные авторизационные куки
                var authCookie = new HttpCookie("auth");
                authCookie.Values["identity"] = user.Login;
                authCookie.Values["pass"] = user.PasswordHash;
                authCookie.Expires = DateTime.Now.AddDays(7);
                Response.Cookies.Add(authCookie);
            }

            // Добавляем запись в таблицу авторизаций
            var loginHistoryItem = new UserLoginHistory()
                {
                    DateCreated = DateTime.Now,
                    User = user,
                    LoginDateTime = DateTime.Now,
                    LoginIP = Request.UserHostAddress
                };
            user.UserLoginHistories.Add(loginHistoryItem);
            UsersManager.SubmitChanges();
        }