Beispiel #1
0
 public ActionResult GetSiteUrl(string uid)
 {
     if (uid.StartsWith("x"))
     {
         var page = CMSPage.Get(uid.Substring(1).ToInt());
         return(new ContentResult()
         {
             Content = string.IsNullOrEmpty(page.FullUrl) ? "/" : page.FullUrl
         });
     }
     if (uid.StartsWith("c"))
     {
         var cat = db.StoreCategories.FirstOrDefault(x => x.ID == uid.Substring(1).ToInt());
         if (cat != null)
         {
             return new ContentResult()
                    {
                        Content = cat.FullUrl
                    }
         }
         ;
     }
     if (uid.StartsWith("p"))
     {
         var cat = db.StoreProducts.FirstOrDefault(x => x.ID == uid.Substring(1).ToInt());
         if (cat != null)
         {
             return new ContentResult()
                    {
                        Content = cat.FullUrl
                    }
         }
         ;
     }
     return(new ContentResult()
     {
         Content = "/"
     });
 }
Beispiel #2
0
 public ActionResult SimpleLogin(AuthModel model)
 {
     if (model.Email.IsNullOrEmpty() || model.Password.IsNullOrEmpty())
     {
         model.ErrorText = "Необходимо указать Email и пароль";
     }
     else
     {
         var user = Membership.GetUser(model.Email);
         if (user == null)
         {
             model.ErrorText = "Пользователь с таким Email не зарегистрирован";
         }
         else
         {
             if (Membership.ValidateUser(model.Email, model.Password))
             {
                 if (Roles.IsUserInRole(model.Email, "Client"))
                 {
                     FormsAuthentication.SetAuthCookie(model.Email, true);
                     model.NeedRedirect = true;
                     model.RedirectURL  = CMSPage.Get(model.PageURL).FullUrl;
                 }
                 else
                 {
                     model.ErrorText = "Доступ через эту форму ограничен для администраторов сайта в целях безопасности";
                 }
             }
             else
             {
                 model.ErrorText = "Неверный логин или пароль";
             }
         }
     }
     return(PartialView(model));
 }
Beispiel #3
0
        public ActionResult SimpleRegister(RegModel model)
        {
            if (!model.Agreed)
            {
                model.ErrorText = "Для регистрации необходимо принять условия соглашения";
            }
            else
            {
                if (model.Email.IsNullOrEmpty() || !model.Email.IsMailAdress())
                {
                    model.ErrorText = "Для регистрации необходимо указать Email и пароль";
                }
                else
                {
                    var users = Membership.FindUsersByEmail(model.Email);

                    if (users.Count > 0)
                    {
                        model.ErrorText = "Пользователь с таким Email уже регистрировался на сайте";
                    }
                    else
                    {
                        var user = Membership.GetUser(model.Email);
                        if (user != null)
                        {
                            model.ErrorText = "Пользователь с таким Email уже регистрировался на сайте";
                        }
                        else
                        {
                            if (model.Password.IsNullOrEmpty())
                            {
                                model.Password = new Random(DateTime.Now.Millisecond).GeneratePassword(6);
                            }

                            MembershipCreateStatus createStatus;

                            if (!model.Email.IsMailAdress())
                            {
                                createStatus = MembershipCreateStatus.InvalidEmail;
                            }
                            else
                            {
                                user = Membership.CreateUser(model.Email, model.Password, model.Email, null, null, true,
                                                             null, out createStatus);
                            }
                            if (createStatus == MembershipCreateStatus.Success)
                            {
                                Roles.AddUserToRole(user.UserName, "Client");
                                string name = model.Name;
                                string patr = "";
                                if (name.Trim().Contains(" "))
                                {
                                    var arr = name.Split <string>(" ").ToList();
                                    if (arr.Count() == 2)
                                    {
                                        name = arr.ElementAt(0);
                                        patr = arr.ElementAt(1);
                                    }
                                }
                                var profile = new UserProfile()
                                {
                                    UserID     = (Guid)user.ProviderUserKey,
                                    FromIP     = HttpContext.Request.GetRequestIP().ToIPInt(),
                                    RegDate    = DateTime.Now,
                                    Email      = model.Email,
                                    Name       = name,
                                    Patrinomic = patr,
                                    Surname    = model.Surname,
                                };

                                var db = new DB();
                                db.UserProfiles.InsertOnSubmit(profile);
                                db.SubmitChanges();

                                MailingList.Get("RegisterLetter")
                                .WithReplacement(
                                    new MailReplacement("{PASSWORD}", model.Password)
                                    ).To(model.Email).Send();

                                FormsAuthentication.SetAuthCookie(model.Email, true);
                                model.RedirectURL  = CMSPage.Get("profile").FullUrl;
                                model.NeedRedirect = true;
                            }
                            else
                            {
                                model.ErrorText = ErrorCodeToString(createStatus);
                            }
                        }
                    }
                }
            }
            return(PartialView(model));
        }
 public static string CreateURL(this HttpContext context, int pageid, object[] qs)
 {
     return(CreateURL(context, CMSPage.Get(pageid).FullUrl, qs));
 }
Beispiel #5
0
        public ActionResult Socials()
        {
            var from = Request["from"];

            if (from.IsNullOrEmpty())
            {
                return(PartialView());
            }

            var target = String.Format("http://ulogin.ru/token.php?token={0}&host={1}", Request["token"],
                                       Request.Url.Host);

            var wc = new WebClient();

            byte[] data = null;
            try
            {
                data = wc.DownloadData(target);
            }
            catch (Exception exxxx)
            {
                Response.Redirect(CMSPage.Get("register").FullUrl);
            }
            var js = Encoding.UTF8.GetString(data);

            js = DecodeEncodedNonAsciiCharacters(js);
            var serializer = new JavaScriptSerializer();
            var jsData     = serializer.Deserialize <UserDataFromNetwork>(js);

            if (string.IsNullOrEmpty(jsData.email))
            {
                Session["LoginError"] = "Для регистрации через соцсеть, в соцсети должен быть указан email";
                Response.Redirect(CMSPage.Get("register").FullUrl);
            }


            try
            {
                MembershipUser user  = null;
                var            exist = Membership.GetUserNameByEmail(jsData.email);
                if (!string.IsNullOrEmpty(exist))
                {
                    user = Membership.GetUser(exist);
                }

                //нет такого
                if (user == null)
                {
                    var pass = new Random(DateTime.Now.Millisecond).GeneratePassword(6);
                    //SiteExceptionLog.WriteToLog("Creating user = "******"Client");

                    var profile = new UserProfile()
                    {
                        UserID  = (Guid)user.ProviderUserKey,
                        FromIP  = HttpContext.Request.GetRequestIP().ToIPInt(),
                        RegDate = DateTime.Now,
                        Email   = jsData.email,
                    };

                    profile.Name    = jsData.first_name ?? "";
                    profile.Surname = jsData.last_name ?? "";
                    profile.Nick    = jsData.nickname;
                    byte[] avatar;
                    try
                    {
                        avatar = wc.DownloadData(jsData.photo_big.IsNullOrEmpty() ? jsData.photo : jsData.photo_big);
                    }
                    catch
                    {
                        avatar = null;
                    }
                    profile.Avatar = avatar;

                    var db = new DB();
                    db.UserProfiles.InsertOnSubmit(profile);
                    db.SubmitChanges();


                    MailingList.Get("RegisterLetter")
                    .WithReplacement(
                        new MailReplacement("{PASSWORD}", pass)
                        ).To(jsData.email).Send();

                    FormsAuthentication.SetAuthCookie(jsData.email, true);
                }
                //есть чувак
                else
                {
                    //мыло подтверждено и совпало, логин совпал
                    if ((/*jsData.verified_email == 1 && */ jsData.email.ToLower() == user.Email.ToLower()))
                    {
                        FormsAuthentication.SetAuthCookie(user.UserName, true);
                    }
                    //редирект на страницу с формой, где выводим сообщение
                    else
                    {
                        Session["LoginError"] = (jsData.nickname == user.UserName
                                                  ? "Пользователь с таким логином уже зарегистрирован. Пожалуйста, укажите другой логин."
                                                  : "Пользователь с таким Email уже зарегистрирован. Пожалуйста укажите другой Email");
                        Response.Redirect(CMSPage.Get("main").FullUrl);
                    }
                }
            }
            catch (Exception ex)
            {
                Session["LoginError"] = ex.Message;
            }
            Response.Redirect(CMSPage.Get(from).FullUrl);

            return(PartialView());
        }
 public ActionResult Exit()
 {
     FormsAuthentication.SignOut();
     Response.Redirect(CMSPage.Get("main").FullUrl);
     return(View());
 }
        public ActionResult SimpleRegister(AuthModel model)
        {
            if (model.Email.IsNullOrEmpty() || !model.Email.IsMailAdress())
            {
                model.ErrorText = "Для регистрации необходимо указать Email и пароль";
            }
            else
            {
                var users = Membership.FindUsersByEmail(model.Email);

                if (users.Count > 0)
                {
                    model.ErrorText = "Пользователь с таким Email уже регистрировался на сайте";
                }
                else
                {
                    var user = Membership.GetUser(model.Email);
                    if (user != null)
                    {
                        model.ErrorText = "Пользователь с таким Email уже регистрировался на сайте";
                    }
                    else
                    {
                        MembershipCreateStatus createStatus;

                        if (!model.Email.IsMailAdress())
                        {
                            createStatus = MembershipCreateStatus.InvalidEmail;
                        }
                        else
                        {
                            user = Membership.CreateUser(model.Email, model.Password, model.Email, null, null, true,
                                                         null, out createStatus);
                        }
                        if (createStatus == MembershipCreateStatus.Success)
                        {
                            Roles.AddUserToRole(user.UserName, "Client");
                            var profile = new UserProfile()
                            {
                                UserID  = (Guid)user.ProviderUserKey,
                                FromIP  = HttpContext.Request.GetRequestIP().ToIPInt(),
                                RegDate = DateTime.Now,
                                Email   = model.Email,
                            };

                            var db = new DB();
                            db.UserProfiles.InsertOnSubmit(profile);
                            db.SubmitChanges();

                            MailingList.Get("RegisterLetter")
                            .WithReplacement(
                                new MailReplacement("{PASSWORD}", model.Password)
                                ).To(model.Email).Send();

                            FormsAuthentication.SetAuthCookie(model.Email, true);
                            model.RedirectURL  = CMSPage.Get("profile").FullUrl;
                            model.NeedRedirect = true;
                        }
                        else
                        {
                            model.ErrorText = ErrorCodeToString(createStatus);
                        }
                    }
                }
            }
            return(PartialView(model));
        }