我有一个用于 ASP.NET(Windows 身份验证)和 winforms 项目的报告 dll。有时它需要用户名,所以如果它在 ASP.NET 中运行,它将使用:
System.Web.HttpContext.Current.User.Identity.Name;
在窗户里
WindowsIdentity.GetCurrent().Name
现在我正在尝试迁移到 .NET 4 客户端配置文件,因此我需要避免报告 dll 中的 System.Web 引用。当dll在不使用System.Web的ASP.NET中运行时,是否有另一种方法来获取Windows用户名。我目前可以看到避免 System.Web 的唯一方法是将用户名作为参数传递,这在每个报告中都很难调整。