Пример #1
0
        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));
        }
Пример #2
0
        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);
        }