При использовании Directory.GetFiles (…) я получаю исключение «Доступ к пути запрещен» - PullRequest
0 голосов
/ 17 октября 2011

Когда я запускаю этот код с проектом консольного приложения, он работает хорошо, но когда я запускаю его в веб-части, возникает исключение «Доступ к пути запрещен». Я хочу получить доступ к информации о каталогах анонимного пользователя с моего сайта sharepoint.

Я даю полный доступ (чтение / запись) к папке «wwwroot» для «Все», «АНОНИМНЫЙ ЛОГОН», «IIS_IUSRS»

string VideosPath = @"\\10.2.10.2\inetpub\wwwroot\Videos";
string[] fileDirectories= 
  System.IO.Directory.GetDirectories(VideosPath, "*", SearchOption.AllDirectories);

Спасибо за все, я решаю проблему с помощью делегата

     SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    using (SPSite site = new SPSite(SPContext.Current.Site.Url))
                    {
                        using (SPWeb currentWeb = site.OpenWeb(SPContext.Current.Web.ID))
                        {
string[] fileDirectories= 
      System.IO.Directory.GetDirectories(VideosPath, "*", SearchOption.AllDirectories);

                         }
                    }
                }
              );

Ответы [ 2 ]

1 голос
/ 17 октября 2011

Анонимная учетная запись веб-сервера не является анонимной учетной записью на удаленном компьютере.

Чтобы это работало, создайте новую учетную запись на обеих машинах с одинаковыми именем и паролем, а затем запустите пул приложений веб-сайта под этой учетной записью. Возможно, «только» с IIS, запущенным с использованием этой учетной записи, будет достаточно, поэтому попробуйте сначала.

При этом предоставьте этой учетной записи права доступа к папке и всем ее родительским папкам.

1 голос
/ 17 октября 2011

Ваш @"\\10.2.10.2\... путь будет указывать на корень текущего диска , которого не должно быть.

Вам необходимо:

string VideosPath = Server.MapPath("~/10.2.10.2/..."); 
...

, где ~/ - это корень вашего приложения, а просто / будет корнем "сайта"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...