public void Submit() { if (IsAjax) { if (IsPost) { if (!IsWap) { if (PassportSection.GetSection().LoginWithCaptcha) { if (!Captcha.CheckCaptcha("login", Request.Form["Captcha"])) { SetResult((int)M.LoginStatus.CaptchaError); return; } } } int errCount; M.Member member; string name = Request.Form["UserName"]; string pwd = Request.Form["Password"]; M.LoginStatus status = M.Member.Login(DataSource, name, pwd, ClientIp, out errCount, out member); if (status == M.LoginStatus.Success) { Web.PassportAuthentication.SetAuthCookie(true, false, member); OnLogined(member.Id); HttpCookie loginCookie = new HttpCookie("UserName"); string check = Request.Form["remember"]; if (check == "true") { loginCookie.Values.Add("UName", name); loginCookie.Expires = DateTime.Now.AddYears(1); Response.SetCookie(loginCookie); } else { loginCookie.Values.Add("UName", ""); loginCookie.Expires = DateTime.Now.AddYears(1); Response.SetCookie(loginCookie); } } SetResult((int)status, errCount); } else { NotFound(); } } else { NotFound(); } }
public void Cb(string type) { string target = Request.QueryString["target"]; if (string.IsNullOrEmpty(target)) { target = GetUrl("/"); } OAuth2Provider provider = GetProvider(type); if (provider != null) { OAuth2TokenAccess token = provider.Access() as OAuth2TokenAccess; M.OAuth2Member user = provider.GetUserInfo(token); if (!string.IsNullOrEmpty(user.UserId)) { M.Member member; M.LoginStatus status = M.OAuth2Member.Login(DataSource, type.ToLower(), user.UserId, ClientIp, out member); if (status == M.LoginStatus.Success) { PassportAuthentication.SetAuthCookie(true, false, member); OnLogined(member.Id); Refresh(target); } else { if (status == M.LoginStatus.NeedBind) { this["Oauth2Type"] = user.Type; this["Oauth2UserId"] = user.UserId; this["Target"] = target; this["Sms"] = SMSCaptchaSection.GetSection(); Render("oauth2.html"); } else { Redirect(GetUrl("/login")); } } } else { Redirect(GetUrl("/login")); } } else { Redirect(GetUrl("/login")); } }
public void Bind() { try { //string target = Request.Form["Target"]; //if (string.IsNullOrEmpty(target)) // target = GetUrl("/"); string type = Request.Form["Oauth2Type"]; string userId = Request.Form["Oauth2UserId"]; M.RegisterType rt = (M.RegisterType) int.Parse(Request.Form["RegisterType"]); M.Member member = DbTable.Load <M.Member>(Request.Form); if (rt == M.RegisterType.Mobile) { if (!V.MobileHash.Equals(DataSource, member.Mobile, V.MobileHash.Register, Request.Form["Captcha"])) { SetResult((int)M.LoginStatus.CaptchaError); return; } member.VerMob = true; } string password = member.Password; member.ParentId = Utility.GetReference(this, DataSource); member.Approved = true; member.CreationDate = DateTime.Now; DataStatus status = M.OAuth2Member.Register(DataSource, type, userId, member, rt); if (status == DataStatus.Success) { M.LoginStatus state = M.OAuth2Member.Login(DataSource, type, userId, ClientIp, out member); if (state == M.LoginStatus.Success) { PassportAuthentication.SetAuthCookie(true, false, member); OnLogined(member.Id); SetResult(true); } else { SetResult((int)state); } } else { SetResult((int)status); } } catch (Exception) { SetResult(false); } }
public void Submit() { try { M.RegisterType type = (M.RegisterType) int.Parse(Request.Form["RegisterType"]); PassportSection section = PassportSection.GetSection(); M.Member member = DbTable.Load <M.Member>(Request.Form); if (type == M.RegisterType.Mobile) { if (section.VerifyMobile) { if (!V.MobileHash.Equals(DataSource, member.Mobile, V.MobileHash.Register, Request.Form["SmsCaptcha"])) { SetResult((int)M.LoginStatus.SmsCaptchaError); return; } member.VerMob = true; } } if (!IsWap) { if (section.RegisterWithCaptcha) { if (!Captcha.CheckCaptcha(Request.Form["CaptchaName"], Request.Form["Captcha"])) { SetResult((int)M.LoginStatus.CaptchaError); return; } } } string password = member.Password; if (member.ParentId == 0) { bool convertResult = long.TryParse(Request.QueryString["ParentId"], out member.ParentId); if (!convertResult) { member.ParentId = Utility.GetReference(this, DataSource); } } member.Approved = section.DefaultApproved; member.CreationDate = DateTime.Now; DataStatus status = member.Insert(DataSource); if (status == DataStatus.Success) { int errCount; string name; switch (type) { case M.RegisterType.Email: name = member.Email; break; case M.RegisterType.Mobile: name = member.Mobile.ToString(); break; default: name = member.Name; break; } M.LoginStatus state = M.Member.Login(DataSource, name, password, ClientIp, out errCount, out member); if (state == M.LoginStatus.Success) { Web.PassportAuthentication.SetAuthCookie(true, false, member); } SetResult((int)state); } else { SetResult((int)status); } } catch (Exception) { SetResult(false); } }