Пример #1
0
        public ActionResult Login(LoginModel model, string returnUrl)
        {
            using (CustomDbContext db = new CustomDbContext())
            {
                //var userDetails = db.UserProfiles.Where(x => x.UserName == model.UserName && x.Password== model.Password).FirstOrDefault();
            }

            if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe))
            {
                //return RedirectToLocal(returnUrl);
                // Создать объект cookie-набора
                HttpCookie cookie = new HttpCookie("UT");

                GenerateToken gt      = new GenerateToken();
                var           jsonObj = gt.GenerateLocalAccessTokenResponse(model.UserName);

                JsonSerializer serializer = new JsonSerializer();
                UserToken      u          = (UserToken)serializer.Deserialize(new JTokenReader(jsonObj), typeof(UserToken));
                // Установить значения в нем
                cookie.Value = u.access_token;
                //cookie["Country"] = "ru-ru";

                // Добавить куки в ответ
                Response.Cookies.Add(cookie);

                cookie = new HttpCookie("UserId");

                // Установить значения в нем
                cookie.Value = model.UserName;
                //cookie["Country"] = "ru-ru";

                // Добавить куки в ответ
                Response.Cookies.Add(cookie);
                return(RedirectToAction("Index", "Profile"));
            }

            // If we got this far, something failed, redisplay form
            ModelState.AddModelError("", "Ім'я користувача або пароль введені невірно.");
            return(View(model));
        }
Пример #2
0
        public ActionResult Register(RegisterModel model)
        {
            if (ModelState.IsValid)
            {
                using (CustomDbContext db = new CustomDbContext())
                {
                    db.ProfileModel.Add(new ProfileModel {
                        UserName = model.UserName
                    });
                    db.SaveChanges();
                }
                // Attempt to register the user
                try
                {
                    string role = "";
                    if (model.Role)
                    {
                        role = "mentor";
                    }
                    else
                    {
                        role = "student";
                    }
                    using (CustomDbContext db = new CustomDbContext())
                    {
                        var   user  = db.ProfileModel.SingleOrDefault(x => x.UserName == model.UserName);
                        Image image = Image.FromFile(HostingEnvironment.MapPath("~/Images/userphoto.png"));
                        System.IO.MemoryStream memoryStream = new System.IO.MemoryStream();
                        image.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Jpeg);
                        byte[] b = memoryStream.ToArray();
                        user.UserPhoto = b;
                        db.SaveChanges();
                    }
                    WebSecurity.CreateUserAndAccount(model.UserName, model.Password, propertyValues: new
                    {
                        EmailAddress = model.EmailAddress,
                        Role         = role
                    });
                    WebSecurity.Login(model.UserName, model.Password);

                    HttpCookie cookie = new HttpCookie("UT");

                    GenerateToken gt      = new GenerateToken();
                    var           jsonObj = gt.GenerateLocalAccessTokenResponse(model.UserName);

                    JsonSerializer serializer = new JsonSerializer();
                    UserToken      u          = (UserToken)serializer.Deserialize(new JTokenReader(jsonObj), typeof(UserToken));
                    // Установить значения в нем
                    cookie.Value = u.access_token;
                    //cookie["Country"] = "ru-ru";

                    // Добавить куки в ответ
                    Response.Cookies.Add(cookie);

                    // Создать объект cookie-набора
                    cookie = new HttpCookie("UserId");

                    // Установить значения в нем
                    cookie.Value = model.UserName;

                    // Добавить куки в ответ
                    Response.Cookies.Add(cookie);

                    return(RedirectToAction("Index", "Profile"));
                }
                catch (MembershipCreateUserException e)
                {
                    ModelState.AddModelError("", ErrorCodeToString(e.StatusCode));
                }
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }