【发布时间】:2011-10-25 16:11:11
【问题描述】:
我使用以下代码来检查 DACL 中是否存在 certin 用户:
Dim l_managemantObject As ManagementBaseObject() = CType(securityDescriptor.Properties("DACL").Value, ManagementBaseObject())
For Each mObject As ManagementBaseObject In l_managemantObject
l_name = CType(mObject.GetPropertyValue("Trustee"), ManagementBaseObject).Properties("Name").Value.ToString
If CType(mObject.GetPropertyValue("Trustee"), ManagementBaseObject).Properties("Domain").Value IsNot Nothing Then
l_domain = CType(mObject.GetPropertyValue("Trustee"), ManagementBaseObject).Properties("Domain").Value.ToString()
End If
If users.UserName.ToLower = (l_domain & "\" & l_name).ToLower Then
Return True
End If
Next
如您所见,我可以获取用户名和域。但是如何检查用户是否具有FullControl 权限?
编辑:
我做了进一步的调查,发现使用GetAccessMask,我可以检索代表返回实例的用户或组所持有的共享的访问权限。
所以剩下要找出的是:
如何获取特定用户AccessMask?
【问题讨论】:
标签: .net vb.net .net-3.5 permissions wmi