Example #1
0
        public ActionResult ExternalLoginCallback(string returnUrl)
        {
            var membership = GetMembership();
            var callbackUrl = GetCallbackUrl(returnUrl);
            var result = OAuthWebSecurity.VerifyAuthentication(membership, this.HttpContext, callbackUrl);
            if (!result.IsSuccessful)
            {
                var reason = "";
                if (result.Error != null)
                {
                    reason = result.Error.Message;
                    Kooboo.HealthMonitoring.Log.LogException(result.Error);
                }
                return RedirectToAction("ExternalLoginFailure", new { returnUrl = returnUrl, reason = reason });
            }
            else
            {
                var membershipConnect = new MembershipConnect() { Membership = membership, Name = result.Provider }.AsActual();
                if (membershipConnect != null)
                {
                    var membershipUser = _membershipUserManager.CreateOrUpdateOAuthMember(membership, membershipConnect, result, null);

                    if (membershipUser.IsApproved && !membershipUser.IsLockedOut)
                    {
                        HttpContext.Membership().SetAuthCookie(membershipUser.UserName, false);
                    }
                    else
                    {
                        return RedirectToAction("ExternalLoginFailure", new { returnUrl = returnUrl, reason = "The member was locked out." });
                    }
                }

            }
            return RedirectToLocal(returnUrl);
        }
Example #2
0
 public string GetUserName(AuthResult authResult, MembershipConnect membershipConnect)
 {
     string userName = authResult.UserName;
     if (!IsEmail(userName) && !string.IsNullOrEmpty(membershipConnect.UsernameFormat))
     {
         userName = string.Format(membershipConnect.UsernameFormat, userName);
     }
     return userName;
 }
Example #3
0
 public virtual ActionResult Create(MembershipConnect model, string @return)
 {
     JsonResultData data = new JsonResultData(ModelState);
     if (ModelState.IsValid)
     {
         data.RunWithTry((resultData) =>
         {
             model.Membership = Membership;
             _manager.Add(model);
             resultData.RedirectUrl = @return;
         });
     }
     return Json(data);
 }
Example #4
0
        private static IAuthClient GetAuthClient(Kooboo.CMS.Membership.Models.Membership membership, string connectName)
        {
            var membershipConnect = new MembershipConnect() { Membership = membership, Name = connectName }.AsActual();

            if (membershipConnect == null)
            {
                throw new ArgumentException("Invalid membership connect.");
            }

            var authClient = Kooboo.CMS.Common.Runtime.EngineContext.Current.Resolve<IAuthClient>(membershipConnect.Name.ToLower());
            authClient.MembershipConnect = membershipConnect;

            return authClient;
        }
Example #5
0
 public override bool Equals(object obj)
 {
     if (!(obj is MembershipConnect))
     {
         return(false);
     }
     if (obj != null)
     {
         MembershipConnect membershipUser = (MembershipConnect)obj;
         if (this.Membership == membershipUser.Membership && membershipUser.Name.EqualsOrNullEmpty(this.Name, StringComparison.CurrentCultureIgnoreCase))
         {
             return(true);
         }
     }
     //The base.Equals method was overrided by PathResource
     return(this.GetHashCode() == obj.GetHashCode());
 }
Example #6
0
        public virtual ActionResult Delete(MembershipConnect[] model)
        {
            ModelState.Clear();
            var data = new JsonResultData(ModelState);
            data.RunWithTry((resultData) =>
            {
                if (model != null)
                {
                    foreach (var o in model)
                    {
                        o.Membership = Membership;
                        _manager.Delete(o);
                    }
                }

                data.ReloadPage = true;
            });

            return Json(data);
        }
Example #7
0
        public string GetEmail(AuthResult authResult, MembershipConnect membershipConnect)
        {
            string email = "";

            if (IsEmail(authResult.UserName))
            {
                email = authResult.UserName;
            }
            else
            {
                email = "";
                if (authResult.ExtraData != null)
                {
                    var extraData = new Dictionary<string, string>(authResult.ExtraData, StringComparer.OrdinalIgnoreCase);
                    if (extraData.ContainsKey("email"))
                    {
                        email = extraData["email"];
                    }
                }
            }
            return email;
        }
Example #8
0
 public virtual ActionResult Edit(string uuid)
 {
     var membershipConnect = new MembershipConnect() { Membership = Membership, UUID = uuid }.AsActual();
     return View(membershipConnect);
 }
Example #9
0
 public virtual ActionResult IsNameAvailable(string name)
 {
     var membershipConnect = new MembershipConnect() { Membership = Membership, Name = name }.AsActual();
     if (membershipConnect != null)
     {
         return Json("The name is duplicate.".Localize(), JsonRequestBehavior.AllowGet);
     }
     return Json(true, JsonRequestBehavior.AllowGet);
 }