Beispiel #1
0
        /// <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));
        }
Beispiel #3
0
        /// <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));
        }
Beispiel #4
0
        /// <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));
        }
Beispiel #5
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));
        }
Beispiel #6
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);
        }
Beispiel #7
0
        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");
        }