Использование ServiceSecurityContext.Current с WCF / Silverlight 4 - PullRequest
1 голос
/ 04 апреля 2011

Я хочу использовать текущего пользователя Windows для своего приложения Silverlight.Используя любое другое приложение, я могу просто использовать WindowsIdentity, но, похоже, мне нужно использовать ServiceSecurityContext.Current с WCF.Моя проблема в том, что .Current выглядит как null.

Видимо, это из-за транспортного режима, который я использую.Моя проблема в том, что Silverlight не может использовать TransportWithMessageCredential, очевидно, без необходимости использовать Https.

Поэтому я пытаюсь использовать TransportWithMessageCredential, и мой сервис начинает говорить, что ожидает Https, но получает Http.

Я посмотрел в Интернете, и мне кажется, что мне нужно использовать wsHttpBinding (который недоступен в Silverlight) или какую-то форму политики доступа для использования Https с Http (что, похоже, не работает).

Конечно, есть более простой способ сделать это?

1 Ответ

1 голос
/ 06 апреля 2011

Мне удалось решить эту проблему, выполнив несколько вещей:

1) <authentication mode="Windows"/> в файле web.config

2) <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" /> в файле web.config. aspnetCompatibilityEnabled здесь самый важный.

3) [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] атрибут в моем классе обслуживания WCF.

4) Используйте HttpContext.Current.User.Identity as WindowsIdentity, чтобы получить идентификатор Windows.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...