asp.net 跨域服务器 上传文件

时间:2022-08-29 12:19:08

最近一个项目遇到问题,公司局域网中,在F域下有个服务器Fa,我们的项目就部署在Fa。项目里面有个功能,需要把生成的文件(.doc,.xls,.pdf)保存到O域的一台文件共享服务器Ob。在原有的网络环境下,F域是不能访问O域,反过来也是。经过协商,让网络管理员开通了Fa访问Ob其中一个文件夹的权限,并给我们新建一个账号密码去访问。用一般的保存文件到服务器固定路径的方法不行,提醒没有权限。到网上找解决方案,汇总如下:

1、引用博客园walkingp 的一篇文章,http://www.cnblogs.com/walkingp/archive/2011/04/29/2033064.html。里面有两个解决方案,本人认为可行,但没实际测试过。缺点是都要求在跨域的服务器中部署项目,Ob服务器不允许我们这么做,不过可以在O域的其他服务器作部署,然后将保存路径写到服务器Ob。当我正在这么做的时候,其他同事已经把此问题解决,我就没继续了。

2、第三种方法,在服务器Fa上把服务器Ob的共享目录映射为本地一个磁盘,然后就可以像访问本地硬盘那样访问服务器Ob上的共享目录了,但是要把登陆名、密码写入到程序的web.config里:

在 web.Config 文件里,这个位置:

 <configuration>
   <system.web>
      <identity>
<identity impersonate="true" userName="administrator" password="xxx" ></identity>

我是相信这种方法是可行的,但同事说他们已经试过这种方法,多次尝试不成功,到最后都想不通原因。

3、第四种方法,也是我们最后实现的方法。类似上面第三种方法,在服务器Fa上把服务器Ob的共享目录映射为本地一个磁盘Z。项目中生成文件的方法是,将文件保存在本地C盘某目录下,然后调用一个本地的批处理程序(.bat),批处理程序的功能是:先验证Ob共享目录的用户名和密码,然后将本地C盘某目录的文件全部拷贝一次到Z盘。

最后功能实现,但我仍是不理解,第三和第四种方法的区别。留待以后去探索。