어떻게하면 C#에서 스레드 주체를 지우니까?C# 스레드 주체 지우기
나는이 잘 작동 후 결과 교장 다시 메인 스레드
AppDomain.CurrentDomain.SetThreadPrincipal(Thread.CurrentPrincipal);
에 복사합니다
Membership.ValidateUser(username, password);
을하는 백그라운드 스레드가 있습니다. 하지만, 내가 로그 오프하면 주체를 지우고 싶습니다. null로 설정하면 아무 것도하지 않습니다. Thread.CurrentPrincipal = null; 나는 시도하고
AppDomain.CurrentDomain.SetThreadPrincipal(Thread.CurrentPrincipal);
를 통해 다시 설정하면 나는 오류
Default principal object cannot be set twice.
어떤 아이디어를 얻을?
그럴 수도 있습니다. Dispatcher 스레드에서 membership.validateuser를 몇 번 호출하면 아무런 문제가 없습니다. 항상 다른 principal을 씁니다. 아마도 잘못된 주체를 업데이트하려고합니다. validateUser가 어떤 주역을 업데이트했는지 알 수 있습니까? – gimpy
예, SetThreadPrincipal 메서드를 한 번만 호출합니다. – TheZenker