/// <summary> /// Returns all external logins of user. /// </summary> /// <param name="user">User.</param> public Task <IList <UserLoginInfo> > GetLoginsAsync(User user) { if (user == null) { throw new ArgumentNullException(nameof(user)); } IList <UserLoginInfo> logins = ExternalLoginInfoProvider.GetExternalLogins() .WhereEquals("UserID", user.Id) .Select(x => new UserLoginInfo(x.LoginProvider, x.IdentityKey)) .ToList(); return(Task.FromResult(logins)); }
/// <summary> /// Gets a user by an external login. /// </summary> /// <param name="login">The external login.</param> /// <returns>The user.</returns> /// <exception cref="ArgumentNullException">Thrown when <paramref name="login"/> is <see langword="null"/>.</exception> public Task <MedioClinicUser> FindAsync(UserLoginInfo login) { if (login == null) { throw new ArgumentNullException(nameof(login)); } var loginInfo = ExternalLoginInfoProvider.GetExternalLogins() .WhereEquals("LoginProvider", login.LoginProvider) .WhereEquals("IdentityKey", login.ProviderKey) .TopN(1) .FirstOrDefault(); return(loginInfo != null?FindByIdAsync(loginInfo.UserID) : Task.FromResult <MedioClinicUser>(null)); }
/// <summary> /// Returns user based on given external login. /// </summary> /// <param name="login">External login information.</param> public Task <User> FindAsync(UserLoginInfo login) { if (login == null) { throw new ArgumentNullException(nameof(login)); } var loginInfo = ExternalLoginInfoProvider.GetExternalLogins() .WhereEquals("LoginProvider", login.LoginProvider) .WhereEquals("IdentityKey", login.ProviderKey) .FirstObject; if (loginInfo != null) { return(FindByIdAsync(loginInfo.UserID)); } return(Task.FromResult <User>(null)); }
/// <summary> /// Removes external login to user. /// </summary> /// <param name="user">User.</param> /// <param name="login">External login information.</param> public Task RemoveLoginAsync(User user, UserLoginInfo login) { if (user == null) { throw new ArgumentNullException(nameof(user)); } if (login == null) { throw new ArgumentNullException(nameof(login)); } var info = ExternalLoginInfoProvider.GetExternalLogins() .WhereEquals("LoginProvider", login.LoginProvider) .WhereEquals("IdentityKey", login.ProviderKey) .WhereEquals("UserID", user.Id); ExternalLoginInfoProvider.DeleteExternalLoginInfo(info); return(Task.FromResult(0)); }
/// <summary> /// Adds external login to user. /// </summary> /// <param name="user">User.</param> /// <param name="login">External login information.</param> public Task AddLoginAsync(User user, UserLoginInfo login) { if (user == null) { throw new ArgumentNullException(nameof(user)); } if (login == null) { throw new ArgumentNullException(nameof(login)); } ExternalLoginInfoProvider.SetExternalLoginInfo(new ExternalLoginInfo { UserID = user.Id, LoginProvider = login.LoginProvider, IdentityKey = login.ProviderKey }); return(Task.FromResult(0)); }
public async Task SetUp() { mMembershipFakeFactory.GetIntegrationUsers().ToList().ForEach(x => UserInfoProvider.SetUserInfo(x)); mMembershipFakeFactory.GetIntegrationRoles().ToList().ForEach(x => RoleInfoProvider.SetRoleInfo(x)); mMembershipFakeFactory.GetIntegrationExternalLogins().ToList().ForEach(x => ExternalLoginInfoProvider.SetExternalLoginInfo(x)); SettingsKeyInfoProvider.SetValue("cmssitesharedaccounts", 0, "True"); mOwinContext = new OwinContext(); var options = new IdentityFactoryOptions <UserManager> { Provider = new TestIdentityFactoryProvider(), DataProtectionProvider = new DpapiDataProtectionProvider() }; var middleware = new IdentityFactoryMiddleware <UserManager, IdentityFactoryOptions <UserManager> >(null, options); await middleware.Invoke(mOwinContext); var manager = mOwinContext.GetUserManager <UserManager>(); mSignInManager = new SignInManager(mOwinContext.GetUserManager <UserManager>(), mOwinContext.Authentication); }
public void SetUp() { mMembershipFakeFactory.GetIntegrationUsers().ToList().ForEach(x => UserInfoProvider.SetUserInfo(x)); mMembershipFakeFactory.GetIntegrationRoles().ToList().ForEach(x => RoleInfoProvider.SetRoleInfo(x)); mMembershipFakeFactory.GetIntegrationExternalLogins().ToList().ForEach(x => ExternalLoginInfoProvider.SetExternalLoginInfo(x)); SettingsKeyInfoProvider.SetValue("cmssitesharedaccounts", 0, "True"); mUserStore = new UserStore("NonExistingSiteForTestingPurposes"); }