如何判断当前用户是IIS管理器还是Server Administrator?
我们的安装程序在添加/删除结束时失败,因为用户没有足够的prividgles来创建或删除虚拟目录。
在进入安装/卸载操作的肉和土豆之前,无论如何都要检查可以用户创建或删除虚拟目录。
是否有权限目录我们可以查找并检查当前用户或类似内容?
感谢
BW
答案 0 :(得分:1)
我在Code Project找到了这个,它就是我需要的。
它的关键是System.IO.FileInfo.GetAccessControl().GetAccessRules
方法来获取文件夹的ACL。
摘录
System.IO.FileInfo fi = new System.IO.FileInfo(_path);
AuthorizationRuleCollection acl = fi.GetAccessControl().GetAccessRules(true, true, typeof(SecurityIdentifier));
for (int i = 0; i < acl.Count; i++) {
System.Security.AccessControl.FileSystemAccessRule rule = (System.Security.AccessControl.FileSystemAccessRule)acl[i];
if (_principal.User.Equals(rule.IdentityReference)) {
if (System.Security.AccessControl.AccessControlType.Deny.Equals. (rule.AccessControlType)) {
if (contains(FileSystemRights.AppendData,rule))
_denyAppendData = true;
答案 1 :(得分:0)
您需要检查文件夹上的ACL以查看它们是否具有权限。您基本上可以使用类似的东西来抓住路径:
然后检查ACL。
如果他们没有安装保释金。
答案 2 :(得分:0)
如果用户被添加到''组,他有权在IIS中创建虚拟目录
if (IISversion == 6)
IIS_WPG - check for user in this group
else
IIS_IUSRS - check for user in this group