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

ASP.NET访问共享文件夹的详细步骤

程序员文章站 2023-11-25 13:36:16
假设找找看的asp.net程序在a服务器,索引文件在b服务器的zzkindex共享文件夹中,访问地址是\\192.168.18.18\zzkindex\。要实现就是在a服务...

假设找找看的asp.net程序在a服务器,索引文件在b服务器的zzkindex共享文件夹中,访问地址是\\192.168.18.18\zzkindex\。要实现就是在a服务器的asp.net程序中能读写共享文件夹\\192.168.18.18\zzkindex\中的文件。

具体操作步骤:

(注:a服务器为asp.net程序所在服务器,b服务器为共享文件夹所在服务器)

①在两台服务器上建立相同用户名、相同密码的windows帐户(a与b服务器都要建),比如假设这里用户名是zzkindexer,密码是zzk.cnblogs.com。

②取消两台服务器上的zzkindexer帐户的远程控制(remote control)权限(让这个帐户拥有尽可能少的权限),如下图:

ASP.NET访问共享文件夹的详细步骤

③将b服务器上的zzkindexer帐户移出所有用户组(包含users),如下图:

ASP.NET访问共享文件夹的详细步骤

不属于任何用户组?是的,不要怀疑,已经过实践检验。

④在b服务器上创建共享文件夹zzkindex并给zzkindexer帐户授予写权限,有两个权限需要设置,一个是文件系统权限,一个是共享权限。

文件系统权限设置如下图:

ASP.NET访问共享文件夹的详细步骤

共享权限设置如下:

ASP.NET访问共享文件夹的详细步骤

⑤在a服务器的iis中创建虚拟目录指向b服务器的共享文件夹,如下图:

ASP.NET访问共享文件夹的详细步骤

点击“确定”后,如果出现访问拒绝(access to the path '\\192.168.18.18\zzkindex' is denied.)的错误,不用管它。

⑥在a服务器的asp.net程序的web.config文件中,添加帐户模拟设置:

<system.web>
  <identity impersonate="true" username="zzkindexer" password="zzk.cnblogs.com"/>
</system.web>

⑦在a服务器上,设置“c:\windows\microsoft.net\framework64\v4.0.30319\temporary asp.net files”的文件系统权限,授予zzkindexer帐户修改权限(注:v4.0.30319为当前.net framework版本号)。 否则,运行时会出现错误:the current identity (zzkindexer) does not have write access to 'c:\windows\microsoft.net\framework64\v4.0.30319\temporary asp.net files'.

⑧万事具备,只欠测试!用一个简单的test.aspx页面测试一下,代码如下:

<%@ page language="c#" autoeventwireup="true" %>
<script runat="server">
protected void page_load(object sender, eventargs e)
{
  system.io.file.create(server.mappath("/zzkindex/cnblogs.txt"));
}
</script>

访问test.aspx之后,看b服务器的zzkindex共享文件中的内容:

ASP.NET访问共享文件夹的详细步骤

小结

“解决问题+写博客”花费的时间可能是“解决问题+不写博客”的两倍,但写出来之后,你再也不用担心再次遇到这个问题,再也不会出现这样的郁闷。以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。