2013-10-09 3 views
0

У меня проблема. Надеюсь, кто-то может мне помочь.Доступ запрещен при выполнении GetDirectories(), но Dir in Powershell работает

Я создал специальную страницу действий, в которой я, среди прочего, сканирую каталог на удаленном сервере для набора каталогов, а внутри этих каталогов я ищу набор файлов. Однако, когда я выполняю код на рабочем сервере, я получаю исключение Access denied. Если я использую тот же код на моем сервере тестирования (доступ к тому же удаленному серверу), он работает просто отлично.

Если я использую powershell или explorer на рабочем сервере, я могу без проблем получить доступ к удаленному каталогу и файлам.

Я использую одну и ту же учетную запись во всех сценариях (если я распечатываю страницу.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

ответ

0

Проблема была решена с помощью SPSecurity.RunWithElevatedPrivileges()!

/Fredrik

Смежные вопросы