У меня есть приложение asp.net 4.0 (клиент), которое делает вызовы ajax/json на фасад http, который затем передает вызовы на наш сервисный уровень wcf.Forms Authentication Cookie и WCF
Пользователи должны пройти аутентификацию на клиенте с использованием проверки подлинности форм. Тогда идея состоит в том, что cookie аутентификации будет передан и будет доступен на http-фасаде. [Дизайн, основанный на книге Дино Эспозито - Microsoft ASP.NET и AJAX: Архитектурные веб-приложения]
Проблема в том, что на фасаде HttpContext.Current.User.Identity.Name является пустой строкой, а IsAuthenticated - false.
Я включил совместимость, добавив следующее в моем system.serviceModel раздел в моем web.config (HTTP уровня фасада):
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
</system.serviceModel>
Я украсил мою службу следующий:
[AspNetCompatibilityRequirements(RequirementsMode =
AspNetCompatibilityRequirementsMode.Required)]
Когда я отлаживаю приложение ajax/facade, я вижу, что файлы cookie существуют в HttpContext.Current.Request.Cookies. Похоже, что используется аноним, а не мой аутентифицированный пользователь.
Оба приложения работают на одном сервере IIS.
Звонки на услугу wcf с поддержкой AJAX осуществляются через serviceProxy.js. Возможно, этот метод не передает необходимый файл cookie?
В настоящее время трассировка WCF показывает «..ASPXANONYMOUS = .....; ASP.NET_SessionId = ....; .ASPXAUTH = ..... 'в журнале сообщений.
У меня такое ощущение, что я пропустил что-то простое, но слишком близко к проблеме.
Любые предложения приветствуются.
Спасибо, Leland. Я должен тебе пиво или что-то в этом роде. Я предположил, что машинный ключ для каждой машины, а не какой-то другой для каждого приложения. Это два отдельных приложения. –
Нет проблем, Тим. Рад, что это помогло. Обычно они просто сгенерированы автоматически, что может вызвать у вас проблемы даже для одного приложения, поскольку файлы cookie не будут совпадать, если вы повторно развернете (даже на том же компьютере). Могут закончиться тем, что пользователи безумны, когда их флажок «Запомнить меня» не работает ... –