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