什么是.net相当于geteuid()?

时间:2011-10-26 14:14:41

标签: .net permissions

我想以编程方式检查拥有该流程的有效用户是什么,从该流程内部,在Windows下。·
可能是winapi,但最好使用.net解决方案。

有一个复杂的系统,我没有完美的控制,.net应用程序获取“访问被拒绝”的某些网络文件系统路径,因此我想知道哪个用户应该获得访问此路径的权限,所以我需要拥有尝试访问它的进程的用户。

2 个答案:

答案 0 :(得分:1)

使用Windows API:

GetUserNameEx function

在C#中

WindowsIdentity.GetCurrent().Name;

答案 1 :(得分:0)

虽然不是.net,但Unix to Windows Porting Dictionary上的以下文章:

uid_t getuid();
uid_t geteuid();

...是解决这个问题的良好开端。

从那篇文章:

  

Unix进程维护用户的UID之间的区别   启动进程(真正的UID)和用户的UID   进程正在运行(有效的UID)。 Windows没有   保持这种区别。 SID的值将是等价的   Unix有效UID。由于相当于Unix真正的UID   使用SID时无法获得建议用于Windows的时候   需要真实或有效的UID。