public static UserPassport BindThirdPassport(ThirdPassport entity, out SignStatus status) { entity.AssertNotNull("entity"); UserPassport passport = null; status = SignStatus.None; var thirdPassport = ThirdPassport.FindByPlatformPassportId(entity.Platform, entity.PlatformPassportId); if (null == thirdPassport) { var email = string.Format("${0}@{1}.io", entity.PlatformPassportId, entity.Platform); var password = EncryptProvider.GenerateSalt(); passport = MemberShip.SignUp(email, null, null, password, ProfileType.UserProfile, new SignedUpInfo(), out status); if (SignStatus.Success == status) { thirdPassport = entity; thirdPassport.PassportId = passport.PassportId; thirdPassport.Save(); } } else { passport = UserPassport.FindById(thirdPassport.PassportId); status = null == passport ? SignStatus.Error : SignStatus.Success; } return(passport); }
/// <summary> /// /// </summary> /// <param name="passportId"></param> /// <param name="info"></param> /// <param name="userPassport"></param> /// <returns></returns> public static bool SignIn(long passportId, SignedInLog info, out UserPassport userPassport) { userPassport = UserPassport.FindById(passportId); bool verified = null != userPassport; if (verified) { userPassport.SignIn(); if (null != info) { info.PassportId = userPassport.PassportId; info.Save(); } if (null != OnSignIn) { OnSignIn(userPassport); } } return(verified); }