2009-06-17 3 views
2

Ich mag die ASP-Anwendung, einen Ordner erstellen, die nur Zugriff auf das Konto muss die Anwendung mit ausgeführt wurde (dh asp Account?)System.IO.Directory.CreateDirectory mit Berechtigungen nur für diesen aktuellen Benutzer?

Ich mag eigentlich this one verwenden, aber ich weiß nicht, wie das verwenden " Computer \ CurrentAccount "dynamisch.

Ich möchte das aktuelle Arbeitskonto erhalten.

Danke.

+0

Haben Sie das Verzeichnis Beispiel hier angesehen: http://msdn.microsoft.com/en-us/library/system.security.accesscontrol.directorysecurity.aspx –

Antwort

5

Es gibt ein Beispiel zum Erstellen einer DirectorySecurity Instanz und Hinzufügen eines ACE für einen benannten Benutzer here (aber verwenden Sie den Standardkonstruktor, um mit einer leeren ACL zu beginnen).

Um die SID des Kontos zu erhalten gibt es zwei Möglichkeiten (diese müssen Prüfungen):

Der erste Ansatz ist auf den Besitzer des Prozesses der Besitzer des Verzeichnisses zu sein verlassen. Dies ist wahrscheinlich, wenn zu brechen Identitätswechsel zu tun (zB unter Windows-Authentifizierung die Identität des Clients für die Zugangskontrolle verwendet haben Inhalt des Dateisystems):

var ds = new DirectorySecurity(); 
var sid = new SecurityIdentifier(WellKnownSidType.CreatorOwnerSid, null) 
var ace = new FileSystemAccessRule(sid, 
            FileSystemRights.FullControl, 
            AccessControlType.Allow); 
ds.AddAccessRule(ace); 

Der zweite Ansatz, um den Prozess Eigentümer aus dem Prozess Token zu bekommen, dieser Wille erfordern P/Invoke. Dazu gehört ein Beispiel: http://www.codeproject.com/KB/cs/processownersid.aspx, sobald Sie die SID haben, erstellen Sie eine SecurityIdentifier-Instanz dafür und folgen Sie den obigen Anweisungen, um die ACL zu erstellen.

+0

Ich möchte, dass der "Computer \ User" dynamisch sein. – Shimmy

+0

@Shimmy: Ich dachte du könntest :-) ... expandieren. – Richard

+0

Oh. Entschuldigen Sie die Störung, ich möchte alle anderen Benutzer ebenfalls einschränken, können Sie mir bitte sagen, wie ich das tun könnte? – Shimmy

Verwandte Themen