Windows Linux .NET Core 中的用户模拟?

Windows User Impersonation in .NET Core on Linux?

我正在用 C# 编写一个 .NET Core 应用程序,它将 运行 在 Linux 服务器上,但我需要模拟 Windows 用户才能访问一些远程Windows 服务器上的资源。我有在那里进行身份验证的凭据,但我看到的所有实现都依赖于“Advanced Windows 32 Base API”(advapi32.dll),这是一个共享的 Windows 库,而不是Linux.

可用

我该如何进行这项工作?

我跳出框框思考了一下,找到了解决方案。我发现我可以使用 SharpCifs.Core for CIFS access and the Microsoft PowerShell SDK 来获取远程 PowerShell 会话,并获取环境变量。我确实希望 Microsoft 能编写一些更好的 cross-platform 工具。

Mono 项目有几种 linux 命令的包装器,其中之一是 seteuid(用于模拟的 linux 命令)。值得一看的 NuGet 包 Mono.Posix.NETStandard。它似乎将在新的 .Net 5 版本中进行改进。不知道能不能满足你的需求...