Служба Ria недоступна для клиента (требуется служба проверки подлинности) - PullRequest
0 голосов
/ 18 августа 2011

У меня есть 2 доменных службы в моем решении Silverlight, оба из них имеют атрибут RequAuthentication. Когда пользователь заходит в приложение и входит в систему, он может вызвать службу A, и она работает нормально, но когда пользователь вызывает службу B, он выдает исключение Load operation failed for query 'X'. Access to operation 'X' was denied.

Как решить эту проблему?

1 Ответ

0 голосов
/ 06 октября 2011

Вам нужна служба аутентификации, как упомянуто в комментарии, которая, скорее всего, не имеет установленный RequAuthentication, если вы не хотите сначала выполнить аутентификацию в ASP.NET, а затем зачем беспокоиться об этой службе?

Я реализовал свои услуги, как определено здесь: http://www.codeproject.com/KB/silverlight/IssueVisionSilverlightPt3.aspx#AuthenticationService но то, что не было очевидно, есть в ValidateUser(userName, password, out userData), userData может не быть здесь нулевым или FormsAuthentication.Encrypt(ticket) будет всегда возвращать нулевое значение, и поэтому не установит вашу аутентификацию cookie для Silverlight для отправки на ваш сервис доменных запросов. Вы можете определить, отправляется ли cookie с помощью Fiddler, и вам это абсолютно необходимо для того, чтобы службы аутентификации и доменного имени "общались".

Более причудливая часть - [EnableClientAccess(RequiresSecureEndpoint = true)], так как кажется, что она требует requireSSL = true в разделе форм web.config и весь трафик должен проходить через https. Для меня это означает обнаружение этого на клиенте и перенаправление до любого запуска аутентификации.

...