gpt4 book ai didi

c# - 如何在单元测试中将 Thread.CurrentPrincipal 重置为未验证

转载 作者:太空狗 更新时间:2023-10-29 20:05:29 25 4
gpt4 key购买 nike

我有可以从多种客户端类型(例如 WinForms、控制台、ASP.NET 等)调用的库代码,并且需要确定当前主体。在这样做时,我对 Thread.CurrentPrincipal 和 Environment.UserName 执行了两步检查,如下所示:

var currentUser = !System.Threading.Thread.CurrentPrincipal.Identity.IsAuthenticated ? null : System.Threading.Thread.CurrentPrincipal.Identity.Name;
if (string.IsNullOrWhiteSpace(currentUser))
{
currentUser = Environment.UserName;
}

在控制台应用程序中,Thread.CurrentPrincipal.Identity.IsAuthenticated 始终为假,但在 MSTest 中,它始终具有经过身份验证的有效用户。

有没有办法在单元测试中将 Thread.CurrentPrincipal 的值重置为未经身份验证以模仿控制台应用程序?

最佳答案

您需要做的就是:

Thread.CurrentPrincipal = new GenericPrincipal(new GenericIdentity(""), new string[0]);

关于c# - 如何在单元测试中将 Thread.CurrentPrincipal 重置为未验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12795667/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com