问题描述
我正在用C#编写一个.NET Core应用程序,该应用程序将在Linux服务器上运行,但是我需要模拟一个Windows用户才能访问Windows Server上的某些远程资源。我具有在此处进行身份验证的凭据,但是我看到的所有实现都依赖于“高级Windows 32基本API”(advapi32.dll),这是Linux上不可用的共享Windows库。
我如何进行这项工作?
解决方法
我可以通过跳出框框思考来找到解决方案。我发现可以将SharpCifs.Core用于CIFS访问,而可以使用Microsoft PowerShell SDK来获取远程PowerShell会话并获取环境变量。我希望微软能够编写一些更好的跨平台工具。
,Mono项目具有几种linux命令的包装,其中之一是seteuid(用于模拟的linux命令)。值得一看的是NuGet软件包Mono.Posix.NETStandard。似乎将在新的.Net 5版本中进行修改。我不确定它是否可以满足您的需求...