Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sharepoint 执行GetDirectories()操作时拒绝访问,但Powershell中的目录有效_Sharepoint - Fatal编程技术网

Sharepoint 执行GetDirectories()操作时拒绝访问,但Powershell中的目录有效

Sharepoint 执行GetDirectories()操作时拒绝访问,但Powershell中的目录有效,sharepoint,Sharepoint,我有个问题,希望有人能帮我解决 我已经创建了一个自定义操作页面,其中我将扫描远程服务器上的目录以查找一组目录,并在这些目录中搜索一组文件。 然而,当我在生产服务器上执行代码时,我得到一个拒绝访问的异常。 如果我在testserver上使用相同的代码(访问相同的远程服务器),它就可以正常工作 如果在生产服务器上使用powershell或explorer,则可以访问远程目录和文件,而不会出现任何问题 我在所有场景中都使用相同的帐户(如果我打印出Page.User.Identity.Name和SPCo

我有个问题,希望有人能帮我解决

我已经创建了一个自定义操作页面,其中我将扫描远程服务器上的目录以查找一组目录,并在这些目录中搜索一组文件。 然而,当我在生产服务器上执行代码时,我得到一个拒绝访问的异常。 如果我在testserver上使用相同的代码(访问相同的远程服务器),它就可以正常工作

如果在生产服务器上使用powershell或explorer,则可以访问远程目录和文件,而不会出现任何问题

我在所有场景中都使用相同的帐户(如果我打印出Page.User.Identity.Name和SPContext.Current.Web.CurrentUser.LoginName,则它们与我在测试服务器上使用的帐户相同,与我在从命令行或资源管理器访问远程服务器时在生产服务器上登录的帐户相同)

代码如下所示:

string user = SPContext.Current.Web.CurrentUser.LoginName.Remove(0,7);
string user_path = "\\\\srv\\share1\\subdir\\dir\\" + user;

// The line below will raise an exception on the production server.
foreach (string board_path in Directory.GetDirectories(user_path, "Board*")) {
   foreach (string board_file in Directory.GetFiles(board_path, "Board*.xml")) {
   .
   .
   }
}
我不明白为什么代码在testserver上运行,而不是在生产机器上运行。我正在使用SharePoint 2010标准

提前谢谢你给我的任何帮助


/Fredrik

使用SPSecurity.RunWithElevatedPrivileges()解决了问题

/弗雷德里克