Windows 安全性和识别 .Net 中的特权
本文关键字:特权 Net 识别 安全性 Windows | 更新日期: 2023-09-27 18:33:38
我有一个Windows窗体应用程序,它将在域和非域(本地桌面)环境中运行。 我试图了解Windows安全性在这些不同环境中的工作原理。 我需要以编程方式确定何时以管理员身份运行我的应用程序的 Windows 用户,我假设域和本地环境是不同的(并且可能当 UAC 处于控制之中时??
我也有点困惑,如果打开,UAC 是否会取代域登录?
我希望该产品的大多数远程用户也将设置为本地管理员,并受到UAC的限制。
在这些条件下,您如何检查特权? (vb.net 应用程序,但 C# 也很好 - 谢谢)
干杯,蒂姆。
Public Function isWindowsAdministrator() As Boolean
My.User.InitializeWithWindowsUser()
If My.User.IsAuthenticated Then
If My.User.IsInRole(Microsoft.VisualBasic.ApplicationServices.BuiltInRole.Administrator) Then
Return True
End If
End If
Return False
End Function
可能有一个非VB/"纯"NET替代方案,我只是不知道等价物。 还有一种方法可以测试用户是否可以提升到管理员,但这是一个 PInvoke,混乱的 win32 事情,实际上并没有提升,只是测试。
UAC 仍然会弹出,上面只是提前通知您用户是否可以授权。
Vb.Net:
公共函数 IsUserAnAdmin() 作为布尔值 结束功能
C#:
[DllImport("shell32.dll")]public static extern bool IsUserAnAdmin();
如您所见,通过调用IsUserAnAdmin返回布尔值(显然可以使用别名)。 为了清楚起见,我相信这适用于我提到的所有情况,但我还没有完全完成我的域测试......还