昨天公司系统要用其他服务器存储图片,我准备走映射盘来存储,开始觉得很简单,做个映射,然后修改web.config就好了。谁知道,不成功!
后来网上找好多资料,都没有具体的方法。
但是从中得到了好多提示,从而解决了问题。
步骤如下:
思路:
服务器共享出来,要给用户读写权限。但因为基于windows的访问,如果不成功,它会弹出提示框的,所以如果基于web 系统的话,这个是做不到重新输入用户名密码,所以,只能图片服务器给的用户名和密码 在其他机器上也存在,然后就可以直接访问了。
于是,在图片服务器共享出来,然后将以下用户添加进去,
NET WORK
NET WORK SERVICE
注意,是两个用户。
因为IIS启动进程的用户是 NET WORK SERVICE,我一开始只添加了这个用户,但不成功。
后来添加了everyone,成功了。然后就在找其他用户,,找到NET WORK就OK了。
其实,如果服务器都在域里面,那也可以用以下方法。
共享权限开给一个域用户,然后在asp.net里面用 模拟用户 的方法来解决。
模拟用户 其实就是用 设置的用户来启动进程。
具体如下:
http://technet.microsoft.com/zh-cn/library/aa302396.aspx
http://msdn.microsoft.com/zh-cn/library/xh507fc5.aspx
上面是微软的,我只用了在web.config里面设置,没修改machine.config
<identity impersonate="true"
userName="userName"
password="password" />
此属性放在 web.config下的<system.web>中即可。
用以下的语句可以取得当前线程用户。
System.Security.Principal.WindowsIdentity.GetCurrent().Name