Beispiel #1
0
        public static async Task xRemoveLoginAsync <TContext, TUser, TKey, TUserLogin>(this IIdentityUserLoginStoreWithContext <TContext, TUser, TKey, TUserLogin> store, TUser user, string loginProvider, string providerKey, CancellationToken cancellationToken = default)
            where TContext : class, IIdentityContext//, IIdentityContext_WithUserLogins<TKey>
            where TKey : IEquatable <TKey>
            where TUserLogin : class, IIdentityUserLogin <TKey>
            where TUser : class, IIdentityUserWithLogins <TKey>
        {
            store.ThrowIfCancelledRequestOrDisposedOrUserNull(user, cancellationToken);
            var entry = await store.xFindUserLoginAsync(user.Id, loginProvider, providerKey, cancellationToken);

            if (entry != null)
            {
                await store.Context.DbDeleteAsync(entry);
            }
        }
Beispiel #2
0
        public static async Task <TUser> xFindByLoginAsync <TContext, TUser, TKey, TUserLogin>(this IIdentityUserLoginStoreWithContext <TContext, TUser, TKey, TUserLogin> store, string loginProvider, string providerKey, CancellationToken cancellationToken = default)
            where TContext : class, IIdentityContext//, IIdentityContext_WithUserLogins<TKey>
            where TKey : IEquatable <TKey>
            where TUserLogin : class, IIdentityUserLogin <TKey>
            where TUser : class, IIdentityUserWithLogins <TKey>
        {
            cancellationToken.ThrowIfCancellationRequested();
            var userLogin = await store.xFindUserLoginAsync(loginProvider, providerKey, cancellationToken);

            if (userLogin != null)
            {
                return((TUser)await store.Context.DbGetQueryable <TUser>().xFindByIdAsync(userLogin.UserId, cancellationToken));
            }
            return(null);
        }