Error: File operation not allowed. Access to route denied

Error: File operation not allowed. Access to route denied

我正在开发一个使用 Silverlight 的项目,我想在其中显示服务器路径的 PDFS 文件,但是当我开始调试我的代码时,我发现了以下异常:

我在以下代码中生成流程的位置:

System.Windows.Browser.HtmlElement myFrame = System.Windows.Browser.HtmlPage.Document.GetElementById("_sl_historyFrame");
            if (myFrame != null)
            {
                DirectoryInfo folderPath = new DirectoryInfo(@"\192.168.1.216\UploadFileMobilePDF\" + transfer.IdTransfer);
                foreach (var file in folderPath.EnumerateFiles("*.pdf", SearchOption.AllDirectories))
                {
                    myFrame.SetStyleAttribute("width", "1024");
                    myFrame.SetStyleAttribute("height", "768");
                    Uri uri = new Uri(folderPath + file.FullName);
                    string path = uri.AbsoluteUri.ToString();
                    myFrame.SetAttribute("src", path);
                    myFrame.SetStyleAttribute("left", "0");
                    myFrame.SetStyleAttribute("top", "50");
                    myFrame.SetStyleAttribute("visibility", "visible");
                }
            }

实例化 DirectoryInfo class folderPath = new DirectoryInfo ()

时出现错误

不知道是不是silverlight不能有服务器地址的权限

您的应用程序可能没有权限访问您尝试访问的服务器上的文件。

查看 WindowsImpersonationContext 以找到最可能的解决方法。 https://docs.microsoft.com/en-us/dotnet/api/system.security.principal.windowsimpersonationcontext?view=netframework-4.8

您需要一个 class(例如,"MyImpersonator"),它使用 WindowsImpersonationContext 使用有效凭据登录到服务器。有太多细节无法呈现完整的解决方案,但是 使用 class(在其他地方定义)来获取单个文件可能看起来像这样:

     using (var impersonator = new MyImpersonator())
     {
        string name = ConfigurationManager.AppSettings["name"];
        string password = ConfigurationManager.AppSettings["pass"];


        if (impersonator.LogOnCrossDomain(account, pass))
        {                   
             if (File.Exists(filepath))
             {                           
                 byte[] content = File.ReadAllBytes(filepath);                          
             }
         }  
      }