Files
Umbraco-CMS/umbraco/businesslogic/Utils/fileHelper.cs
Shandem f6d0d043b5 DO NOT DOWNLOAD. DOWNLOAT LATEST STABLE FROM RELEASE TAB
Created 4.1.0 branch

[TFS Changeset #55082]
2009-06-19 07:39:16 +00:00

38 lines
1.4 KiB
C#

using System;
using System.Collections.Generic;
using System.Text;
using System.Security;
using System.IO;
using System.Security.AccessControl;
using System.Security.Authentication;
using System.Security.Cryptography;
using System.Security.Permissions;
using System.Security.Policy;
using System.Security.Principal;
namespace umbraco.Utils {
public class fileHelper {
public static bool TestReadWriteAccces(string filePath) {
FileInfo fi = new FileInfo(filePath);
if (!fi.IsReadOnly)
return HasAccces(fi, FileSystemRights.Modify);
else
return false;
}
public static bool HasAccces(FileInfo fileInfo, FileSystemRights fileSystemRights) {
string identityName = System.Security.Principal.WindowsIdentity.GetCurrent().Name.ToUpper();
AuthorizationRuleCollection authorizationRuleCollection = fileInfo.GetAccessControl().GetAccessRules(true, true, typeof(NTAccount));
foreach (FileSystemAccessRule fileSystemAccessRule in authorizationRuleCollection) {
if (identityName == fileSystemAccessRule.IdentityReference.Value.ToUpper())
return AccessControlType.Allow == fileSystemAccessRule.AccessControlType && fileSystemRights == (fileSystemAccessRule.FileSystemRights & fileSystemRights);
}
return false;
}
}
}