Запустите STSADM из ASP.NET под _layouts - PullRequest
2 голосов
/ 28 января 2009

Можно ли запустить STSADM из приложения ASP.NET, которое находится в папке _layouts?

Я скопировал этот код на эту страницу .

При запуске возвращается сообщение Доступ запрещен .

Ответы [ 2 ]

3 голосов
/ 29 января 2009

Process.Start заставит STSADM работать под учетной записью рабочего процесса ASPNET

Поэтому, если вы даете этой учетной записи разрешение на использование STSADM, вы должны быть уверены, что ваша веб-страница правильно ограничивает то, что может быть сделано и кем

+ 10 за комментарий ВНИМАНИЕ от tekiegreg - если вы поймете это неправильно, он может стать ядерным!

Возможно, лучший способ сделать это - использовать объектную модель Microsoft.SharePoint.Administration , поскольку большинство всего, что можно сделать, хотя STSADM можно сделать через объектную модель, начиная с WSSv3

Это будет иметь несколько преимуществ 1) Нет парсинга строк console.out 2) Вы должны быть в состоянии выдавать себя за аутентифицированного пользователя , поэтому STSADM / SharePoint станет ответственным за определение того, что ему разрешено делать.

3 голосов
/ 28 января 2009

Вероятно, вам нужно предоставить доступ к учетной записи пула приложений ASP.NET для рассматриваемого приложения SharePoint, чтобы выполнить stsadm, если это то, что вы пытаетесь. Или, если вы олицетворяете учетные записи, то речь идет о олицетворенных пользователях. Вам также необходимо предоставить привилегии обеспечения учетной записи пула приложений для всех компонентов SharePoint, на которых он работает (SQL Server, SharePoint и т. Д.)

ВНИМАНИЕ: Это может привести к возникновению всевозможных рисков, так как запуск STSADM из Интернета / интранета может делать все, о чем я даже не думаю. Будьте очень осторожны с инъекционными атаками на выполнение команд stsadm и с людьми, повышающими привилегии на выполнение stsadm, которые не занимаются этим. Можете ли вы придумать лучший способ сделать то, что вы пытаетесь сделать?

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