System.Security.SecurityException: сбой запроса разрешения участника - PullRequest
7 голосов
/ 11 января 2012

Может ли кто-нибудь помочь мне правильно указать, как я могу исправить эту ошибку?

System.Web.Services.Protocols.SoapException: Server was unable to process request. 
     ---> System.Security.SecurityException: Request for principal permission failed.
at System.Security.Permissions.PrincipalPermission.ThrowSecurityException()
at System.Security.Permissions.PrincipalPermission.Demand()
at System.Security.PermissionSet.DemandNonCAS()
at LiveDocx.MailMerge.SetLocalTemplate(String template, String format)

Я установил это программное обеспечение, которое моя компания приобрела у LiveDocx.Итак, у меня нет возможности изменять код или даже читать код.Я установил все в соответствии с их документацией, и сайт подтвердил свою работу.Я могу изменять настройки только в IIS, разрешениях для папок и Web.config.Наш сервер, их программное обеспечение.

Теперь у меня возникла проблема с тем, чтобы оставаться подключенным к веб-сервису.Прежде чем вы думаете, что это мыльный клиент, я подтвердил, что он работает, вызвав серверы поставщика.

Локально, я могу успешно вызвать веб-сервис во время входа в систему, и он работает нормально.Однако при последующем вызове я получаю Request for principal permission failed.

. По запросу их технической поддержки я добавил <trust level="Full" /> в web.config, но это не сработало.Теперь они перестали отвечать на наши письма.

Я не являюсь разработчиком ASP.NET, поэтому мои знания ограничены настройками сервера.Может кто-нибудь указать мне правильное направление, почему эта ошибка происходит, и несколько мест, чтобы решить эту проблему?

Ответы [ 4 ]

3 голосов
/ 18 января 2012

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

Проблема заключалась в том, что в прилагаемом файле web.config отсутствовал тег <authentication> и необходимые настройки.Этот тег (из моего понимания) - это то, что включает куки.Я надеюсь, что это поможет другим с этой ошибкой, даже если не связано с LiveDocx.Кажется, Request for principal permission failed. может быть вызвано по разным причинам, что делает досадную ошибку.

Эта статья была очень полезной Как: использовать членство в ASP.NET 2.0

2 голосов
/ 04 октября 2016

У меня была похожая проблема, и я использовал приложение форм и продолжаю получать эту проблему.Я также использовал основное разрешение и требование действия безопасности.

Я перепробовал все параметры, связанные с web.config, и последняя проблема была с пулом приложений.WinXP to Win7 и другие более поздние версии, которые вы можете увидеть, - это управляемый конвейер, который по умолчанию указывает веб-сайту на интегрированный режим.Я изменил это на классический режим, который исправил проблему.Надеюсь, это поможет участникам, которые пытаются переместить приложение с WinXp на Win7

2 голосов
/ 14 августа 2012

Я столкнулся с этим, потому что на веб-сайте у меня было приложение, настроенное на неправильное имя файла cookie.

Файл web.config на моем корневом веб-сайте выглядел следующим образом

<authentication mode="Forms">
  <forms name="AuthCookie" path="/"></forms>
</authentication>

и приложение под ним имело web.config под этим, которое выглядело так:

<authentication mode="Forms">
  <forms name="WRONGCOOKIENAME" path="/"></forms>
</authentication>

Приложение имело веб-форму с конструктором, который выглядел следующим образом

[PrincipalPermissionAttribute(SecurityAction.Demand, Role = "Foo", Authenticated = true)]

Поэтому требовалась аутентификацияу этого не было этого, потому что название куки было неправильным.Исправление имени куки разрешило ошибку.

2 голосов
/ 11 января 2012

Я бы заподозрил личность пользователя, выполняющего запрос, который, скорее всего, является пользователем пула приложений ASP.Net для веб-сайта, на котором запущено приложение IIS.

Самый простой способ проверить это - создать новый пул приложений для вашего приложения IIS (если в вашем текущем пуле приложений нет других приложений), выбрать другой идентификатор для пула приложений (вы можете начать с сетевой службы, но для этого может потребоваться локальный пользователь), а затем назначить приложение этому пулу.

Это должно сказать вам, если это проблема разрешений с удостоверением пула приложений.

...