Tôi có mã thư viện có thể được gọi từ nhiều loại khách hàng như WinForms, Console, ASP.NET vv ... và cần xác định hiệu trưởng hiện tại. Bằng cách đó tôi đang thực hiện một kiểm tra hai bước của Thread.CurrentPrincipal và sau đó Environment.UserName như sau:Làm thế nào để thiết lập lại Thread.CurrentPrincipal để unauthenticated trong một bài kiểm tra đơn vị
var currentUser = !System.Threading.Thread.CurrentPrincipal.Identity.IsAuthenticated ? null : System.Threading.Thread.CurrentPrincipal.Identity.Name;
if (string.IsNullOrWhiteSpace(currentUser))
{
currentUser = Environment.UserName;
}
trong một điều khiển ứng dụng Thread.CurrentPrincipal.Identity.IsAuthenticated luôn là sai howerver trong MSTest nó luôn luôn có một người dùng đã được xác thực hợp lệ.
Có cách nào để đặt lại giá trị của Thread.CurrentPrincipal trong thử nghiệm đơn vị thành chưa được xác thực để bắt chước ứng dụng Console không?