公司一台服务器:Windows Server 2003 SP2,IIS 6.0,SQL 2005 SP3,域控制器
发布有一套定制开发的OA系统(ASP.NET开发),目前扩展了服务器存储空间后,准备向域用户提供一定容量的服务器存储空间,发布目录级别为:服务器盘符:\\OA系统\域共享目录\部门文件夹\个人文件夹。
需求:希望能够通过OA系统的子页面,用户在点击该页面后,出现弹出页面中,要求用户输入自己的域帐户名及口令,确认后给予访问域共享目录下级子目录的权限,访问权限与该用户所拥有的域帐户权限一致,如有可能,希望上传的文件也能够给予该域用户的所有者身份,即非调用系统administrator的权限进行写入操作。
不知道这种需求是否能够实现,如能够实现,希望能够具体告知将域帐户权限传递至ASP页面的思路或关键代码,以及关于文件夹权限配置方面的注意事项,如将某目录在IIS中发布为虚拟目录或发布为FTP目录,分配Everyone权限给该文件夹并取消子文件夹继承权限等,希望写的具体些。
补充一点,对于该功能页面的需求是不区分是否域内客户端,只要打开该页面均需要输入域帐户名及密码进行权限验证,而对于OA系统其他子功能页面无需进行域用户登陆验证。
本帖与http://topic.csdn.net/u/20110125/20/8da1caf0-2e0a-4a9d-9948-97332b984293.html一起把分数结给提供有效解决方案的朋友。

解决方案 »

  1.   

    可供参考的文档:
    http://topic.csdn.net/u/20080702/21/fc3826ba-2296-41f6-8049-3d0fbe5710b8.html
    http://msdn.microsoft.com/en-us/library/aa705950.aspx
    http://blog.csdn.net/lfywy/archive/2008/07/16/2658623.aspx
      

  2.   

    DirectorySecurity sec = Directory.GetAccessControl(FileName, AccessControlSections.All);
    获取权限
    域操作
    创建虚拟目录
    DirectoryEntry rootEntry;           
    rootEntry = new DirectoryEntry("IIS://localhost/W3SVC/1/root");                  DirectoryEntry newVirDir;              
    newVirDir = rootEntry.Children.Add(virtualdirname, "IIsWebVirtualDir");  newVirDir.Invoke("AppCreate", true);  
    newVirDir.CommitChanges();            
    rootEntry.CommitChanges();          
    newVirDir.Properties["AnonymousPasswordSync"][0] = true;             newVirDir.Properties["Path"][0] = logicDir;
      

  3.   

    直接将应用程序池的执行账户设置为一个可写磁盘的账户即可。注意web.config中的ImpersonateUser的冲突
      

  4.   


    我的需求是:希望上传的文件也能够给予该域用户的所有者身份,即非调用系统administrator的权限进行写入操作。
    不希望通过ASP页面上传的文件是通过一个固定帐户执行写入操作,而应是每个域用户帐户所对应的权限,即对上传文件本身拥有所有权。
      

  5.   


    采用Windows身份认证,然后设置web.config中的<identity Impersonate="true"即可