Wie löschst du den Thread-Principal in c #.
Ich habe einen Hintergrund-Thread, der ein
tut %Vor%kopiert dann den resultierenden Principal zurück in den Haupt-Thread
%Vor%das funktioniert gut. Aber wenn ich mich auslogge, möchte ich den Principal löschen, wenn ich ihn auf null setze, tut er nichts. Thread.CurrentPrincipal = null; wenn ich es nochmal versuche über
%Vor%Ich bekomme den Fehler
%Vor%Irgendwelche Ideen?
Ich glaube nicht, dass Sie den Prinzipal zurücksetzen können, ohne die AppDomain herunterzufahren und neu zu erstellen. Beim Aufruf von SetThreadPrincipal erhalten Sie nur eine Einstellung.
Angenommen, Sie verwenden Ihr eigenes benutzerdefiniertes Prinzipalobjekt, das Sie nach ValidateUser erstellt haben; Sie können wahrscheinlich eine "Abmelden" -Methode auf Ihren Principal setzen, die ihren internen Status auf einen nicht authentifizierten Benutzer zurücksetzt.
Wenn Sie nur den Principal für den Hauptthread festlegen möchten, geben Sie einen Verweis an den Hintergrundthread weiter und legen Sie dann den Principal mit der CurrentPrincipal-Eigenschaft fest.
z.B. mainThead.CurrentPrincipal = Thread.CurrentPrincipal.
Wenn Sie fertig sind, setzen Sie es auf den ursprünglichen Prinzipal