ntfs用户帐户和.net 1.1下freetextbox无法提交的问题

     1、文件夹权限问题
       前天给一个客户部署了一个关于公文的web项目,部署完之后老觉得系统盘是Fat格式不太好,手比较痒就给转换成ntfs了。结果文件夹的权限都给丢了,导致了web无法访问,但是关于iis的用户和用户组的确是不太熟,可是总不能把所有的权限和用户都给加上吧。so,偶就热线求助了一下场外人员,和家里的比对了一下。
     现坐一下总结,学习一下iis的用户
     没有安装 FrontPage Server Extensions 的 Windows Server 2003上,按默认值安装 IIS 6 时 wwwroot 文件夹的权限设置:
            Administrators - 完全控制
            System - 完全控制
            IIS_WPG – 列出文件夹内容、读取和执行、读取
            Users – 列出文件夹内容、读取和执行、读取
            Internet Guest 帐户– 拒绝写入
        在对应目录分配权限时,一般采取在目录上点击右键, 然后在"属性"中选择"安全", 然后添加用户到当前用户列表中。也可将用户加入一些用户组中,比如administrator,但安全性不高,不推荐。下面是转的一个权限表。
       

ASP.NET 进程帐户所需的 NTFS 权限(转载)

目录 所需权限
Temporary ASP.NET Files%windir%\Microsoft.NET\Framework\{版本}Temporary ASP.NET Files 进程帐户和模拟标识:
完全控制
临时目录 (%temp%) 进程帐户
完全控制
.NET Framework 目录%windir%\Microsoft.NET\Framework\{版本} 进程帐户和模拟标识:
读取和执行
列出文件夹内容
读取
.NET Framework 配置目录%windir%\Microsoft.NET\Framework\{版本}\CONFIG 进程帐户和模拟标识:
读取和执行
列出文件夹内容
读取
网站根目录
C:\inetpub\wwwroot
或默认网站指向的路径
进程帐户:
读取
系统根目录
%windir%\system32
进程帐户:
读取
全局程序集高速缓存
%windir%\assembly
进程帐户和模拟标识:
读取
内容目录
C:\inetpub\wwwroot\YourWebApp
(一般来说不用默认目录,管理员可根据实际情况调整比如D:\wwwroot)
进程帐户:
读取和执行
列出文件夹内容
读取
注意 对于 .NET Framework 1.0,直到文件系统根目录的所有父目录也都需要上述权限。父目录包括:
C:\
C:\inetpub\
C:\inetpub\wwwroot\

        2、FreeTextBox不能提交问题。

        这个问题一般不会遇到,但是恰巧那个服务器预装了版本比较老的2003server,恰巧一老版本的.NET Framework,就导致了这一问题的发生。症状主要是提交按钮点击无反应,明显是提交事件被截获了。本以为是ftb的代码问题,看了相关代码如下:

 1<form name="Form1" method="post" action="Manage_Material_Modify.aspx" language="javascript" onsubmit="if (!ValidatorOnSubmit()) return false;FTB_CopyHtmlToHidden(ftbContent_editor,document.getElementById('ftbContent'),ftbContent_HtmlMode);" id="Form1" enctype="multipart/form-data">
 2
 3<script language="javascript" type="text/javascript" src="/aspnet_client/system_web/1_1_4322/WebUIValidation.js"></script>
 4
 5
 6function ValidatorOnSubmit() {
 7    if (Page_ValidationActive) {
 8        return ValidatorCommonOnSubmit();
 9    }
10    return true;
11}

            在第一行可以看到主要是在onsubmit上出了问题,函数ValidatorOnSubmit返回false,使得无法提交。其中又牵扯到了ValidatorCommonOnSubmit,包含在WebUIValidation.js中。按目录找到这个js文件,发现如下代码:

function ValidatorCommonOnSubmit() 

event.returnValue = !Page_BlockSubmit; 
Page_BlockSubmit = false; 

         
    由于版本比较老,如果页面中有验证的页面是无法提交的,这就可以用下面两种法解决,最简单的就是在页面中去掉validator,可以在web.config中system.web节中配置<pages validateRequest = "false"/>,或者直接在页面中配置。另一种方法就是替换以前的这个js文件,新的js文件中的function如下:

function ValidatorCommonOnSubmit() {
    var result = !Page_BlockSubmit;
    Page_BlockSubmit = false;
    event.returnValue = result;
    return result;
}
          
    最好是替换掉1_1_4322文件夹下WebUIValidation.js和SmartNav.js两个文件。
posted on 2007-06-28 16:43  microant  阅读(510)  评论(5编辑  收藏  举报