我有一个 C# 项目,它引用了一个从 VB.NET 项目构建的 .NET 程序集。
此 VB.NET 程序集需要管理权限。
我在我的 C# 项目中创建了一个清单:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
一切似乎都很好:当我跑步时:
bool isAdmin = new WindowsPrincipal(WindowsIdentity.GetCurrent())
.IsInRole(WindowsBuiltInRole.Administrator) ? true : false;
从我的 C# 代码中,我得到isAdmin == True
了预期的结果,但是当我从 VB.NET DLL 调用方法时:
My.User.IsInRole(Microsoft.VisualBasic.ApplicationServices.BuiltInRole.Administrator)
我得到了 False 。
这对我来说似乎很不合逻辑。
此外,如果我创建一个引用此 VB.NET 程序集的 VB.NET 项目并以管理员权限运行它,一切正常。