DomainService1 - это служба домена RIA, представленная как служба SOAP.Эта служба была защищена с помощью атрибутов [RequAuthentication] и [requireRole ("xyz")].
В файле web.config был включен roleManager и для режима аутентификации задано значение Forms.Тестовый клиент использует следующий код для проверки подлинности и запуска операции удаленного сервиса:
var auth = new myAuth.AuthenticationDomainServiceSoapClient();
var svc = new mySvc.DomainService1SoapClient();
try
{
string myCookie;
using (new OperationContextScope(auth.InnerChannel))
{
var user = auth.Login(svcUser.Text, svcPass.Text, false, string.Empty);
var res = (HttpResponseMessageProperty)OperationContext.Current.IncomingMessageProperties[HttpResponseMessageProperty.Name];
myCookie = res.Headers[HttpResponseHeader.SetCookie];
}
using (new OperationContextScope(svc.InnerChannel))
{
var octx = OperationContext.Current;
HttpRequestMessageProperty request = new HttpRequestMessageProperty();
request.Headers["Cookie"] = myCookie;
OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = request;
var results = svc.GetItems();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
Я вижу вызов auth.Login фактически возвращает нужного пользователя, и в этом объекте я вижу рольустановить правильно.Однако вызов GetItems завершается неудачно, и возникает исключение, в котором говорится «Доступ к операции запрещен».
Я что-то пропускаю?Вы видите что-нибудь очевидное, что я пропускаю?
Заранее спасибо,
Приветствия, Джанлука.
[EDIT] Я хотел быдобавить, что в EventLog я получаю это: Проверка подлинности с помощью форм не удалось для запроса.Причина: предоставленный билет недействителен.
Есть идеи о причине?
Приветствия.