Stavo cercando di concedere autorizzazioni NTFS su un percorso UNC per un utente specifico, ma vedo un comportamento diverso a seconda del percorso UNC. Di seguito è riportato il codice (da MSDN), che sto usando per concedere le autorizzazioni e il risultato in ogni scenario,Autorizzazioni ereditate perse con autorizzazioni NTFS
static void GiveNTFSPermissions(string folderPath,
string ntAccountName,
FileSystemRights accessRights)
{
DirectorySecurity dirSecurity = Directory.GetAccessControl(folderPath);
FileSystemAccessRule newAccessRule =
new FileSystemAccessRule(
ntAccountName,
accessRights,
AccessControlType.Allow);
dirSecurity.AddAccessRule(newAccessRule);
Directory.SetAccessControl(folderPath, dirSecurity);
}
Supponiamo che ho una condivisione denominata “RootShare” sulla mia macchina locale, e un'altra cartella “InsideRootShare "al suo interno.
Scenario1: Quando chiamo,
GiveNTFSPermissions(@"\\sri-devpc\RootShare",
@"domain\username",
FileSystemRights.Write);
autorizzazioni ereditate sono stati persi sul percorso condiviso,
Scenario2: Quando chiamo,
GiveNTFSPermissions(@"\\sri-devpc\RootShare\InsideRootShare",
@"domain\username",
FileSystemRights.Write);
Le autorizzazioni ereditate erano intatte.
Ho provato con diversi costruttori di FileSystemAccessRule
ma senza fortuna.
Qual è la causa di questo comportamento e una soluzione alternativa?
Hai provato il [costruttore] (http://msdn.microsoft.com/en-us/library/system.security.accesscontrol.filesystemaccessrule.aspx) che accetta "InheritanceFlags" come argomento? Inoltre, 'AddNTFSPermission' è un nome più ragionevole di' GiveNTFSPermissions', poiché tenta di * aggiungere * una nuova regola di accesso alle regole di accesso esistenti. – Nawaz
Vedere questo argomento: http://stackoverflow.com/questions/243995/setting-folder-permissions-on-vista – Nawaz
@Nawaz: Ho provato tutti i costruttori e ho lo stesso risultato. Grazie per il suggerimento :) – sri