protected void LogIn_Click(object sender, EventArgs e) { if (!this.IsValid) { return; } var eventArgs = new RegistrationEventArgs() { OwinCtx = this.Context.GetOwinContext(), Email = this.Email.Text, FirstName = this.FirstName.Text, LastName = this.LastName.Text, UserType = "User" }; this.EventExternalRegisterUser(this, eventArgs); if (this.Model.Result.Succeeded) { var loginInfo = this.Context.GetOwinContext().Authentication.GetExternalLoginInfo(); if (loginInfo == null) { this.RedirectOnFail(); return; } var socialEventArgs = new SocialLoginEventArgs() { OwinCtx = this.Context.GetOwinContext(), UserId = this.Model.User.Id, UserLoginInfo = loginInfo.Login }; this.EventAddSocialLogin(this, socialEventArgs); if (this.Model.Result.Succeeded) { this.EventSignIn(this, new SocialLoginEventArgs() { OwinCtx = this.Context.GetOwinContext() }); IdentityHelper.RedirectToReturnUrl(Request.QueryString["ReturnUrl"], Response); return; } } this.AddErrors(this.Model.Result); }
private void OnAddSocialLogin(object sender, SocialLoginEventArgs e) { this.View.Model.Result = e.OwinCtx.Get <ApplicationUserManager>().AddLogin(e.UserId, e.UserLoginInfo); }
private void OnGetUserBySocialLogin(object sender, SocialLoginEventArgs e) { this.View.Model.User = e.OwinCtx.GetUserManager <ApplicationUserManager>().Find(e.UserLoginInfo); }
protected void Page_Load() { // Process the result from an auth provider in the request this.ProviderName = IdentityHelper.GetProviderNameFromRequest(Request); if (String.IsNullOrEmpty(this.ProviderName)) { this.RedirectOnFail(); return; } if (!IsPostBack) { var loginInfo = Context.GetOwinContext().Authentication.GetExternalLoginInfo(); if (loginInfo == null) { this.RedirectOnFail(); return; } this.EventGetUserBySocialLogin(this, new SocialLoginEventArgs() { OwinCtx = this.Context.GetOwinContext(), UserLoginInfo = loginInfo.Login }); if (this.Model.User != null) { this.EventSignIn(this, new SocialLoginEventArgs() { OwinCtx = this.Context.GetOwinContext() }); IdentityHelper.RedirectToReturnUrl(Request.QueryString["ReturnUrl"], Response); } else if (this.User.Identity.IsAuthenticated) { // Apply Xsrf check when linking var verifiedloginInfo = Context.GetOwinContext().Authentication.GetExternalLoginInfo(IdentityHelper.XsrfKey, this.User.Identity.GetUserId()); if (verifiedloginInfo == null) { this.RedirectOnFail(); return; } var socialEventArgs = new SocialLoginEventArgs() { OwinCtx = this.Context.GetOwinContext(), UserId = this.User.Identity.GetUserId(), UserLoginInfo = verifiedloginInfo.Login }; this.EventAddSocialLogin(this, socialEventArgs); if (this.Model.Result.Succeeded) { IdentityHelper.RedirectToReturnUrl(Request.QueryString["ReturnUrl"], Response); } else { this.AddErrors(this.Model.Result); } } else { this.Email.Text = loginInfo.Email; } } }