コード例 #1
0
 public async Task <UserLogin> GetByKeyAsync(UserLoginKey key)
 {
     return(await Connection.QuerySingleOrDefaultAsync <UserLogin>
            (
                sql :
                @"
             SELECT
                 [LoginProvider],
                 [ProviderKey],
                 [ProviderDisplayName],
                 [UserId]
             FROM
                 [UserLogins]
             WHERE
                 [LoginProvider] = @LoginProvider,
                 [ProviderKey] = @ProviderKey
         ",
                param : new
     {
         LoginProvider = key.LoginProvider,
         ProviderKey = key.ProviderKey
     },
                transaction : Transaction
            ));
 }
コード例 #2
0
 public UserLogin Find(UserLoginKey key)
 {
     return(Context.Set <UserLogin>()
            .Where(ul => ul.LoginProvider == key.LoginProvider &&
                   ul.ProviderKey == key.ProviderKey)
            .FirstOrDefault());
 }
コード例 #3
0
        public void Remove(UserLoginKey key)
        {
            var entity = Context.Set <UserLogin>().Where(ul => ul.LoginProvider == key.LoginProvider &&
                                                         ul.ProviderKey == key.ProviderKey)
                         .FirstOrDefault();

            Context.Set <UserLogin>().Remove(entity);
        }
コード例 #4
0
 public void Remove(UserLoginKey key)
 {
     Execute(
         sql: @"
             DELETE FROM AspNetUserLogins
             WHERE LoginProvider = @LoginProvider AND ProviderKey = @ProviderKey",
         param: key
         );
 }
コード例 #5
0
 public UserLogin Find(UserLoginKey id)
 {
     return(QuerySingleOrDefault <UserLogin>(
                sql: @"
             SELECT * FROM AspNetUserLogins
             WHERE LoginProvider = @LoginProvider AND ProviderKey = @ProviderKey",
                param: id
                ));
 }
コード例 #6
0
 public void Update(UserLogin entity)
 {
     if (!Context.Set <UserLogin>().Local.Any(ul => ul.ProviderKey == entity.ProviderKey && ul.LoginProvider == entity.LoginProvider))
     {
         Context.Set <UserLogin>().Attach(entity);
         Context.Entry(entity).State = EntityState.Modified;
     }
     else
     {
         var userLoginKey = new UserLoginKey {
             LoginProvider = entity.LoginProvider, ProviderKey = entity.ProviderKey
         };
         var oldEntity = this.Find(userLoginKey);
         Context.Entry(oldEntity).CurrentValues.SetValues(entity);
     }
 }
コード例 #7
0
        public async Task <DemoIdentityUser> FindByLoginAsync(string loginProvider, string providerKey, CancellationToken cancellationToken = default(CancellationToken))
        {
            cancellationToken.ThrowIfCancellationRequested();
            throwIfDisposed();

            var loginKey = new UserLoginKey
            {
                LoginProvider = loginProvider,
                ProviderKey   = providerKey
            };

            var user = await _unitOfWork.UserRepository.GetByUserLoginAsync(loginKey);

            var result = getIdentityUser(user);

            return(result);
        }
コード例 #8
0
        public async Task RemoveLoginAsync(DemoIdentityUser user, string loginProvider, string providerKey, CancellationToken cancellationToken = default(CancellationToken))
        {
            cancellationToken.ThrowIfCancellationRequested();
            throwIfDisposed();
            ExceptionUtil.ThrowIfNull(user, nameof(user));
            var userId = getGuid(user.Id);

            var userLoginKey = new UserLoginKey {
                LoginProvider = loginProvider, ProviderKey = providerKey
            };
            var userLogin = await _unitOfWork.UserLoginRepository.GetByKeyAsync(userLoginKey);

            if (userLogin != null && userLogin.UserId == userId)
            {
                await _unitOfWork.UserLoginRepository.DeleteAsync(userLogin);

                await _unitOfWork.CommitAsync();
            }
        }
コード例 #9
0
 public async Task <User> GetByUserLoginAsync(UserLoginKey userLoginKey)
 {
     return(await Connection.QuerySingleOrDefaultAsync <User>
            (
                sql :
                @"
             SELECT
                 u.[Id],
                 u.[UserName],
                 u.[NormalizeduserName],
                 u.[Email],
                 u.[NormalizedEmail],
                 u.[EmailConfirmed],
                 u.[PasswordHash],
                 u.[SecurityStamp],
                 u.[ConcurrencyStamp],
                 u.[PhoneNumber],
                 u.[PhoneNumberConfirmed],
                 u.[TwoFactorEnabled],
                 u.[LockoutEnd],
                 u.[LockoutEnabled],
                 u.[AccessFailedCount]
             FROM
                 [UserLogins] ul INNER JOIN
                 [Users] u ON ul.[UserId] = u.[Id]
             WHERE
                 ul.[LoginProvider] = @LoginProvider
                 AND ul.[ProviderKey] = @ProviderKey
         ",
                param : new
     {
         LoginProvider = userLoginKey.LoginProvider,
         ProviderKey = userLoginKey.ProviderKey
     },
                transaction : Transaction
            ));
 }
コード例 #10
0
 public User GetByUserLogin(UserLoginKey userLoginKey)
 {
     return(GetByUserLoginAsync(userLoginKey).Result);
 }
コード例 #11
0
 public UserLogin GetByKey(UserLoginKey key)
 {
     return(GetByKeyAsync(key).Result);
 }