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 = "/" }); }
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)); }
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)); }
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)); }