欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ASP.NET数据库编程之处理文件访问许可

程序员文章站 2023-11-27 21:59:40
  一个mdb数据库就是硬盘上的另外一个文件,所以,像其他文件一样,它也将遇到相同的文件访问许可问题。这个问题的意思是为了读取(和写入,就像您将要在本书的后面看到的那样)数...

  一个mdb数据库就是硬盘上的另外一个文件,所以,像其他文件一样,它也将遇到相同的文件访问许可问题。这个问题的意思是为了读取(和写入,就像您将要在本书的后面看到的那样)数据库文件,页面中所运行的应用程序必须具有相关许可才可以在windows中读取(和写入)该文件。

  到目前为止,示例中的页面都能够“正常运行”的原因就是您使用的是vwd web server,一个在运行vwd的用户的身份下运行的轻量级程序。这就是说,vwd web server为您而运行,并且您已经被允许读取和写入页面连接的mdb文件。

  但是,当在iis下运行页面时,情况就有一点复杂了。此时,asp.net页面运行于一个具有特定权限限制的用户账户的身份之下。在iis 5.1之下,这个账户是“aspnet”。在iis 6.0或更高版本下,这个账户是“network service”,属于一个称为iis_wpg(“worker process group”)的windows用户组。为了在iis下使用access数据库,这些账户都必须授予对包含了mdb文件的目录进行读取的许可以及按情况授予写入的许可。

  为了帮助您创建这些许可,当数据库处于应用程序根目录之下的app_data子目录下时,vwd将执行额外的步骤并自动地将这个许可授予aspnet或者 network service账户。假如您正在使用vwd来开发机器上的页面,这个特定的目录就一直会被授予正确的许可。app_data目录还有另外的好处,例如防止其中的任何文件响应发出请求的web浏览器。这就是说将mdb文件放入应用程序的本地app_data目录之后,就可以保护这些文件不被应用程序的客户端无意或有意地下载了。所以,我们极力推荐将mdb文件保存至app_data目录中。

  如果必须将mdb文件保存至其他的地方,或者需要手动指定数据库目录的许可(例如,您正工作于一台远程web服务器),那么可以使用windows来为asp.net和/或 network service账户配置许可。

  如需手动设置许可,请按如下步骤执行:

  (1) 使用windows explorer浏览mdb文件所在的文件夹。

  (2) 右键单击这个目录并选择properties。

  (3) 选择security标签并单击add按钮。

  (4) 添加本地的asp.net账户(iis 5.1) 或者iis_wpg组(iis 6)。

  (5) 单击ok;然后将相关许可应用至这个目录。

  如需获得更多信息,请参阅名为“running asp.net 1.1和iis 6.0”的白皮书,可以从asp.net的web站点:http://www.asp.net/faq/aspnetandiis6.aspx上获得该白皮书。