2009-03-17 3 views
1

Привет, У меня есть веб-сайт SharePoint, который скомпилирован как DLL и помещен в папку BIN моего сайта SP. Мой WebPart работает на моей локальной машине, но когда я положил его на производство он не с.NET One Hop Rule и SharePoint Webparts

(401) Unauthorized. 

После выполнения некоторых исследований я пришел acrooss, что известно как «одно правило хоп». Значение я должен либо передать полномочия пользователя сети, или использовать

<identity impersonate= "true" /> 

в моем web.config. Я не хочу жестко программировать пользователя сети, поэтому мой вопрос заключается в том, как я могу использовать олицетворения в моей веб-части? Поддерживает ли dll web.configs? Спасибо за помощь.

ответ

0

Я не думаю, что есть, чтобы добавить это в DLL. Насколько мне известно.

4

Ваш веб-сайт не работает на производстве, возможно, из-за CAS; Вам может потребоваться повысить уровень разрешений или добавить специальные разрешения, которые будут предоставлены на вашей сборке, потому что он не полностью доверен, как в папке bin.

Если вы уверены, что это просто проблема олицетворения, можете ли вы не просто использовать узлы в вашем web.config?

+0

Он работал до производства, я просто применил некоторые исправления безопасности, и он прекратил работать, поэтому у меня есть ощущение, что оно связано с олицетворением. Раньше я использовал DefaultNetworkCredentials. – DavidS

+0

Патчи безопасности могли бы изменить модель безопасности web.config для вашего каталога bin из полного доверия или доверия к минимальному доверию. Когда вы используете развертывание CAS и SharePoint, оно изменит его на пользовательский уровень доверия. –

2

Олицетворение всегда задано как true в web.config приложения SharePoint, поэтому проблема должна быть где-то в другом месте. Веб-части, которые развертываются в папке BIN веб-приложения, запускаются в изолированной программной среде и по умолчанию имеют ограниченные разрешения. Возможно, это и есть источник проблемы.

+0

Да, я тоже считаю, что это проблема, как я могу это сделать? – DavidS

1

Да, как упоминалось в Тюдоре, это, скорее всего, безопасность доступа к коду. Если вы поместите его в GAC, у вас не будет этой проблемы (GAC полностью доверен).

Вот несколько статей, которые помогут вам с веб-частями CAS и SharePoint. Трюк знает, какие IPermissions вам нужны.

0

Если вы смотрите на "двойной-хоп" вопрос, то вы не будете использовать NTLM. Вам необходимо использовать аутентификацию Kerberos, поскольку билет Kerberos может переходить от пользователя к веб-серверу на веб-службу. Вам нужно будет установить имена принципов обслуживания с помощью SetSPN.

Эта веб-часть вызывает внешние веб-службы? Или ошибка разрешения на основе локальной безопасности?

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