Я хочу, чтобы приложение asp создало папку, которая имеет доступ только к учетной записи, в которой выполнялось приложение (например, asp account?)
Я действительно хочу использовать этот, но я не знаю, как динамически использовать "Computer\CurrentAccount".
Я хочу получить текущую рабочую учетную запись.
Спасибо.
Существует пример создания экземпляра DirectorySecurity
и добавления ACE для именованного пользователя здесь (но используйте конструктор по умолчанию для начните с пустого ACL).
Чтобы получить SID учетной записи, есть две возможности (это требует тестирования):
Первый подход заключается в том, чтобы полагаться на владельца процесса, являющегося владельцем каталога. Вероятно, это будет нарушено, если вы выполняете олицетворение (например, под Windows Authentication, чтобы иметь идентификатор клиента, используемый для контроля доступа к содержимому файловой системы):
var ds = new DirectorySecurity();
var sid = new SecurityIdentifier(WellKnownSidType.CreatorOwnerSid, null)
var ace = new FileSystemAccessRule(sid,
FileSystemRights.FullControl,
AccessControlType.Allow);
ds.AddAccessRule(ace);
Второй подход, чтобы получить владельца процесса от Token процесса, для этого потребуется P/Invoke. Это включает в себя пример: http://www.codeproject.com/KB/cs/processownersid.aspx, как только у вас есть SID, создайте для него экземпляр SecurityIdentifier и следуйте приведенному выше, чтобы создать ACL.