asp.net-core - 获取 AD 用户 Visual Studio Web App 与控制台
问题描述
我在下面有以下代码。
- 当我在 ASP.NET Core 应用程序(因此作为 IIS Express 运行)中使用此代码在 Visual Studio 中运行调试时,它可以工作
- 当我在 Windows 服务中的 ASP.NET 托管进程中使用此代码在 Visual Studio 中运行调试时,这不会返回任何内容,但也不会返回错误消息
我通过 RDP 从我的家用笔记本电脑连接到另一台运行 VPN 的笔记本电脑,所以我认为可能就是这样。我尝试以管理员身份运行 Visual Studio,以管理员身份运行已编译的 exe,指定域的 /runas 等,但命令行应用程序将不显示任何内容,而 asp.net 核心应用程序显示列表。所以它必须是它运行的用户。
但是当我在这两种情况下运行 WindowsIdentity.GetCurrent().Name 时,它会给出相同的域和名称(我)。在任务管理器中,devenv 和 iis 进程是我。
public List<AdSecurityGroupDTO> GetAllDomainSecurityGroups(string domain)
{
List<AdSecurityGroupDTO> result = new List<AdSecurityGroupDTO>();
using (var ctx = new PrincipalContext(ContextType.Domain, domain))
{
GroupPrincipal findAllGroups = new GroupPrincipal(ctx, " * ");
PrincipalSearcher ps = new PrincipalSearcher(findAllGroups);
foreach (Principal group in ps.FindAll())
{
AdSecurityGroupDTO adSecurityGroupDTO = new();
adSecurityGroupDTO.Name = group.Name;
adSecurityGroupDTO.Description = group.Description;
adSecurityGroupDTO.DisplayName = group.DisplayName;
adSecurityGroupDTO.DistinguishedName = group.DistinguishedName;
adSecurityGroupDTO.SamAccountName = group.SamAccountName;
result.Add(adSecurityGroupDTO);
}
return result;
}
}
解决方案
推荐阅读
- sql - SQL 语句唯一 ID,然后按唯一 ID 分组并计算不同的其他 ID 组
- swift - 统一日志记录、StaticString、CustomStringConvertible 和描述的问题
- html - Pandoc:将 Markdown 转换为 HTML *无需*任何 HTML 属性
- java - 预约班
- mysql - SQL - 两个(连接的)表的合并竞争列表
- java - Kafka Streams 到主题
- excel - FIFO老化模拟
- centos6 - 在 CentOS 6 上更新 libcurl 后 YUM 损坏
- bash - Shell,复制名称相似的文件
- tsc - 将单个 .ts 文件编译到标准输出