public ActionResult ExternalLoginConfirmation(RegisterExternalLoginModel model, string returnUrl) { string provider = null; string providerUserId = null; if (this.User.Identity.IsAuthenticated || !OAuthWebSecurity.TryDeserializeProviderUserId(model.ExternalLoginData, out provider, out providerUserId)) { return(this.RedirectToAction("Manage")); } if (this.ModelState.IsValid) { // 将新用户插入到数据库 //var user = // db.UserProfiles.FirstOrDefault(u => u.UserName.ToLower() == model.UserName.ToLower()); var userprofiles = this._userService.GetUserProfileByUserName(model.UserName.ToLower()); // 检查用户是否已存在 if (userprofiles == null) { // 将名称插入到配置文件表 //db.UserProfiles.Add(new UserProfile { UserName = model.UserName }); //db.SaveChanges(); userprofiles = new Application.Dto.User.UserProfileModel { UserName = model.UserName }; bool b = this._userService.AddUserProfiles(userprofiles); OAuthWebSecurity.CreateOrUpdateAccount(provider, providerUserId, model.UserName); this._userService.InserOrUpdateExtUid(WebSecurity.GetUserId(model.UserName)); OAuthWebSecurity.Login(provider, providerUserId, createPersistentCookie: false); return(this.RedirectToCas(returnUrl)); } else { this.ModelState.AddModelError("UserName", "用户名已存在。请输入其他用户名。"); } } this.ViewBag.ProviderDisplayName = OAuthWebSecurity.GetOAuthClientData(provider).DisplayName; this.ViewBag.ReturnUrl = returnUrl; return(View(model)); }
public ActionResult ExternalLoginConfirmation(RegisterExternalLoginModel model, string returnUrl) { string provider = null; string providerUserId = null; if (this.User.Identity.IsAuthenticated || !OAuthWebSecurity.TryDeserializeProviderUserId(model.ExternalLoginData, out provider, out providerUserId)) { return this.RedirectToAction("Manage"); } if (this.ModelState.IsValid) { // 将新用户插入到数据库 //var user = // db.UserProfiles.FirstOrDefault(u => u.UserName.ToLower() == model.UserName.ToLower()); var userprofiles = this._userService.GetUserProfileByUserName(model.UserName.ToLower()); // 检查用户是否已存在 if (userprofiles == null) { // 将名称插入到配置文件表 //db.UserProfiles.Add(new UserProfile { UserName = model.UserName }); //db.SaveChanges(); userprofiles = new Application.Dto.User.UserProfileModel { UserName = model.UserName }; bool b = this._userService.AddUserProfiles(userprofiles); OAuthWebSecurity.CreateOrUpdateAccount(provider, providerUserId, model.UserName); this._userService.InserOrUpdateExtUid(WebSecurity.GetUserId(model.UserName)); OAuthWebSecurity.Login(provider, providerUserId, createPersistentCookie: false); return this.RedirectToCas(returnUrl); } else { this.ModelState.AddModelError("UserName", "用户名已存在。请输入其他用户名。"); } } this.ViewBag.ProviderDisplayName = OAuthWebSecurity.GetOAuthClientData(provider).DisplayName; this.ViewBag.ReturnUrl = returnUrl; return View(model); }