Сбой разрешений CSLA при развертывании на серверах

У меня есть приложение ASP.NET MVC 4, которое использует CSLA.NET для части нашей бизнес-логики. Разрешения на чтение и запись обрабатываются через AD учетной записью домена, той же учетной записью, что и пользователь удостоверения пула приложений и олицетворения .NET. При тестировании на моей локальной машине проверка проходит отлично. После развертывания приложения в одной из наших тестовых сред (dev или qa) я получаю исключения, которые, кажется, указывают на разрешения. Я проверил, что имя пользователя, используемое сборкой, действительно является правильным пользователем, но не смог установить значения ни в одном из полей из-за отсутствия соответствующих разрешений.

Кто-нибудь испытывал что-то подобное раньше?

РЕДАКТИРОВАТЬ:

Ссылка на обсуждение на форумах lhotka.net


person Dustin Wilson    schedule 14.03.2013    source источник


Ответы (1)


Веб-серверы не имеют состояния, поэтому они обычно ничего не помнят между запросами страниц или услуг. Это включает в себя личность и роли пользователя.

Если вы используете безопасность форм ASP.NET (или аналогичную), имя пользователя будет автоматически воссоздано на сервере с использованием маркера файла cookie аутентификации .NET, но это только имя пользователя.

Вы несете ответственность за воссоздание полного объекта принципала/идентификации на сервере для каждой обратной передачи/запроса.

Проще всего это сделать в файле global.asax, часто в событии запроса аутентификации. В загрузке CSLA есть примеры, показывающие, как это сделать, и я обсуждаю это в серии электронных книг «Использование CSLA 4».

Кроме того, в любой хорошей книге по ASP.NET будет обсуждаться восстановление принципала, поскольку на самом деле это не проблема CSLA, а проблема веб-разработки.

person Rockford Lhotka    schedule 23.03.2013