ASP.NET "access is denied"访问 UNC 路径时出错

标签 asp.net windows authorization

下面添加了更正:有问题的代码不是 IIS 7 应用程序的一部分(无应用程序池)。

我有一个 IIS 虚拟目录,其中包含一个包含以下代码的 aspx 页面:

System.Net.WebRequest wr = System.Net.WebRequest.Create( @"file://unc-share/directory/file.pdf" );
wr.Credentials = System.Net.CredentialCache.DefaultCredentials;
WebResponse response = wr.GetResponse();

调用 GetResponse() 时,我收到“访问路径 '\unc-share\directory\file.pdf' 被拒绝”。错误。

我已将应用程序配置为集成 Windows 身份验证(禁用所有其他身份验证类型),并启用 ASP.NET 模拟。

我已经能够验证 ASP.NET 模拟是否使用与我用来访问该站点的 Windows 域帐户相同的身份。文件所在的 UNC 共享是一个独立的 Windows 系统,不托管 Web 服务器,并为此同一帐户设置了“完全控制”权限。

我还尝试使用 FileStream 实例访问该文件,得到相同的结果。

一直在这个网站和其他网站上深入研究这个问题,但没有找到任何与我想要做的事情相匹配的建议,也没有找到解决问题的建议。

有什么想法吗?

最佳答案

像这样访问路径:

System.IO.File.ReadAllText(@"\\uncshare\directory\file.pdf");

此代码片段的重要部分是路径的格式以及 WebRequest 的缺失。您可以使用多种方法来打开该文件。我使用 File.ReadAllText 作为示例,但您也可以使用 FileStream 轻松打开文件。

不需要使用 WebRequest,因为该文件不在 Web 服务器后面。

关于ASP.NET "access is denied"访问 UNC 路径时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9914025/

相关文章:

java - Inno 安装程序 : Extending Windows default apps list

C++ WM_NCCALCSIZE 未被发送

php - 用PHP和Java脚本实现用户授权

c# - 验证 ASP.NET Web API

java - 如何为 Java Web Start 应用程序进行基于网页的身份验证?

c# - 如何手动将项目添加到 Repeater 控件

c# - 路由未定义的 Controller

c# - 返回未授权状态时调用两次 OnAuthorization

asp.net - 在运行时设置RegularExpressionValidator ValidationExpression

C# - 无法在 Windows 10 上使用 PrimaryContext(ContextType.Machine) : The system cannot find the file specified