Class UserProviderBase
Base implementation of user provider with common business logic.
Database-specific providers inherit from this class and provide ISqlDialect and IPasswordHasher.
public abstract class UserProviderBase : IUserProvider
Inheritance
Implements
Derived
Methods
BuildUserSearchSql(UserSearchCriteria?, out object[])
Build SQL for user search. Override in derived class for DB-specific syntax.
protected virtual string BuildUserSearchSql(UserSearchCriteria? criteria, out object[] parameters)
ChangePasswordAsync(IRedbUser, string, string, IRedbUser?)
Change user password.
public virtual Task<bool> ChangePasswordAsync(IRedbUser user, string currentPassword, string newPassword, IRedbUser? currentUser = null)
CreateUserAsync(CreateUserRequest, IRedbUser?)
Create new user.
public virtual Task<IRedbUser> CreateUserAsync(CreateUserRequest request, IRedbUser? currentUser = null)
DeleteUserAsync(IRedbUser, IRedbUser?)
Delete user (soft delete - deactivation).
public virtual Task<bool> DeleteUserAsync(IRedbUser user, IRedbUser? currentUser = null)
DisableUserAsync(IRedbUser, IRedbUser?)
Deactivate user.
public virtual Task<bool> DisableUserAsync(IRedbUser user, IRedbUser? currentUser = null)
EnableUserAsync(IRedbUser, IRedbUser?)
Activate user.
public virtual Task<bool> EnableUserAsync(IRedbUser user, IRedbUser? currentUser = null)
GetActiveUserCountAsync(DateTimeOffset, DateTimeOffset)
Get active user count for period.
public virtual Task<int> GetActiveUserCountAsync(DateTimeOffset fromDate, DateTimeOffset toDate)
GetUserByLoginAsync(string)
Get user by login.
public virtual Task<IRedbUser?> GetUserByLoginAsync(string login)
GetUserConfigurationIdAsync(long)
Get user configuration ID.
public virtual Task<long?> GetUserConfigurationIdAsync(long userId)
GetUserCountAsync(bool)
Get user count.
public virtual Task<int> GetUserCountAsync(bool includeDisabled = false)
GetUserRolesAsync(long)
Get user roles.
public virtual Task<List<IRedbRole>> GetUserRolesAsync(long userId)
GetUsersAsync(UserSearchCriteria?)
Get list of users with filtering.
public virtual Task<List<IRedbUser>> GetUsersAsync(UserSearchCriteria? criteria = null)
IsLoginAvailableAsync(string, long?)
Check login availability.
public virtual Task<bool> IsLoginAvailableAsync(string login, long? excludeUserId = null)
LoadUserAsync(long)
Load user by ID (throws exception if not found).
public virtual Task<IRedbUser> LoadUserAsync(long userId)
LoadUserAsync(string)
Load user by login (throws exception if not found).
public virtual Task<IRedbUser> LoadUserAsync(string login)
OnUserCreatedAsync(IRedbUser, IRedbUser?)
protected virtual Task OnUserCreatedAsync(IRedbUser user, IRedbUser? currentUser)
OnUserDeletedAsync(IRedbUser, IRedbUser?)
protected virtual Task OnUserDeletedAsync(IRedbUser user, IRedbUser? currentUser)
OnUserUpdatedAsync(IRedbUser, IRedbUser?)
protected virtual Task OnUserUpdatedAsync(IRedbUser user, IRedbUser? currentUser)
SetPasswordAsync(IRedbUser, string, IRedbUser?)
Set new password for user (without checking old password).
public virtual Task<bool> SetPasswordAsync(IRedbUser user, string newPassword, IRedbUser? currentUser = null)
SetUserConfigurationAsync(long, long?)
Set user configuration.
public virtual Task SetUserConfigurationAsync(long userId, long? configId)
UpdateUserAsync(IRedbUser, UpdateUserRequest, IRedbUser?)
Update user data.
public virtual Task<IRedbUser> UpdateUserAsync(IRedbUser user, UpdateUserRequest request, IRedbUser? currentUser = null)
ValidateUserAsync(string, string)
Validate user login and password.
public virtual Task<IRedbUser?> ValidateUserAsync(string login, string password)
ValidateUserDataAsync(CreateUserRequest)
Validate user data correctness.
public virtual Task<UserValidationResult> ValidateUserDataAsync(CreateUserRequest request)