2009-06-17 35 views
2

我想要asp應用程序創建一個文件夾,只能訪問應用程序運行的帳戶(即asp帳戶?)只有當前用戶有權限的System.IO.Directory.CreateDirectory?

我實際上想使用this one,但我不知道如何使用「計算機\ CurrentAccount「動態。

我想獲取當前的工作帳戶。

謝謝。

+0

你看過這裏的目錄示例:http://msdn.microsoft.com/en-us/library/system.security.accesscontrol.directorysecurity.aspx – 2009-06-17 12:30:12

回答

5

有一個創建DirectorySecurity實例併爲指定用戶here(但使用默認構造函數以空ACL啓動)添加ACE的示例。

要獲得帳戶的SID有兩種可能性(這些需要測試):

第一種方法是依靠工藝作爲目錄的所有者的所有者。這是有可能打破如果這樣做模擬(在Windows身份驗證例如有使用客戶的身份進行訪問控制與文件系統的內容):

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

第二種方法來擺脫進程令牌流程所有者,這將需要P/Invoke。這包括一個例子:http://www.codeproject.com/KB/cs/processownersid.aspx,一旦你有SID,爲它創建一個SecurityIdentifier實例並按照上面的步驟創建ACL。

+0

我想要「計算機\用戶」是動態的。 – Shimmy 2009-06-17 12:54:59