English 中文(简体)
ASP.Net 无法查看共享文件夹。
原标题:
  • 时间:2008-12-16 19:10:03
  •  标签:

我在之前未曾使用的网络上编写了一个新的应用程序,但遇到了问题。

如果我有以下C#代码:

FileStream fs = File.Create(@"\MyServerMyShare	esting.txt");
fs.Close();

在控制台应用程序中,此代码正确执行。

在ASP.Net应用程序中,我收到了这个错误:登录失败:未知用户名或密码错误。

在ASP.Net应用程序中,如果我添加identity impersonate="true",我会得到这个错误:访问路径 MyServerMyShare esting.txt 被拒绝。

我以前从未遇到过该登录失败消息; 这是从哪里来的?如果我在服务器上创建一个应用程序并让它写入物理位置,它可以正常工作(因此安全性良好),只是似乎共享的安全性不起作用(尽管它将所有人设置为完全写入),或者在服务器级别上有些内容缺失,我不能在一般情况下查看任何内容。

有人知道我错过了什么吗?我写过其他做类似事情的应用程序,从未遇到过这个问题。

谢谢!

最佳回答

更新:

所以我觉得我发布得太早了...失败的原因是因为目录设置为允许匿名访问(所以页面没有模拟;用户是)在我的本地主机上。

它也开始在服务器上工作,但是那里没有做任何更改…… 我不知道在应用程序宕机/关闭期间是否触发了什么,但一切都按预期工作。

谢谢您的评论!

问题回答

问题在于如果将身份模拟设置为false,ASP.NET工作进程帐户将尝试写入共享,通常是NETWORK SERVICE或ASPNET帐户,这取决于您运行的Windows版本。

将模拟设置为 true,而不指定用户名或密码,将使用当前用户的身份验证尝试进行请求。

你需要做以下两种可能的操作之一:A开放工作进程账户权限,这很可能是不可能的。或者B创建一个特定的账户,你的应用程序可以模拟,然后在web.config的identity标签内指定凭据。

默认情况下,ASP.NET应用程序以 YourMachineIUSR_YourMachine的身份运行。您可以打开共享的权限,让所有主体都可以访问(如果机器不在同一个域上可能仍无法工作),或以可以访问该共享的某个人的身份运行您的IIS应用程序。

您可以通过以下方式更改 ASP.NET 应用程序运行的用户:

打开管理工具 -> Internet信息服务,然后右键单击包含应用程序的网站或虚拟目录,单击属性。选择目录安全性选项卡,单击编辑。最后,在匿名访问部分输入可以访问共享的用户的用户名和密码。

迈克 (Mài kè)





相关问题
热门标签