2009-06-17 86 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