by Anonymous » 18 Aug 2025, 21:55
In meiner Anwendung muss ich einen bestimmten Benutzer blockieren und gleichzeitig wird der Benutzer automatisch angemeldet. Ich versuche den Datensatz zu entfernen, wenn der Benutzer blockiert wird. Aber selbst ich lösche die Aufzeichnung, der JWT bleibt so, bis sie abläuft. Ich muss es irgendwie ungültig machen, wenn der Benutzer blockiert wird.
Code: Select all
public async Task BlockUser(Guid id)
{
var currentUser = await _userManager.GetUserAsync(_httpContextAccessor.HttpContext.User);
if (currentUser.Id == id.ToString())
{
throw new AlreadyExistException("Unable to block this user", id);
}
var applicationUser = await _userManager.FindByIdAsync(id.ToString()) ?? throw new NotFoundException(nameof(User), id);
applicationUser.RecordState = (RecordState)2;
await _userManager.UpdateAsync(applicationUser);
var existingUserToken = await _techneDbContext.UserTokens.Where(i => i.UserId == applicationUser.Id).FirstOrDefaultAsync();
if (existingUserToken != null)
{
_techneDbContext.UserTokens.Remove(existingUserToken);
await _techneDbContext.SaveChangesAsync();
}
return true;
}
In meiner Anwendung muss ich einen bestimmten Benutzer blockieren und gleichzeitig wird der Benutzer automatisch angemeldet. Ich versuche den Datensatz zu entfernen, wenn der Benutzer blockiert wird. Aber selbst ich lösche die Aufzeichnung, der JWT bleibt so, bis sie abläuft. Ich muss es irgendwie ungültig machen, wenn der Benutzer blockiert wird.[code]public async Task BlockUser(Guid id)
{
var currentUser = await _userManager.GetUserAsync(_httpContextAccessor.HttpContext.User);
if (currentUser.Id == id.ToString())
{
throw new AlreadyExistException("Unable to block this user", id);
}
var applicationUser = await _userManager.FindByIdAsync(id.ToString()) ?? throw new NotFoundException(nameof(User), id);
applicationUser.RecordState = (RecordState)2;
await _userManager.UpdateAsync(applicationUser);
var existingUserToken = await _techneDbContext.UserTokens.Where(i => i.UserId == applicationUser.Id).FirstOrDefaultAsync();
if (existingUserToken != null)
{
_techneDbContext.UserTokens.Remove(existingUserToken);
await _techneDbContext.SaveChangesAsync();
}
return true;
}
[/code]