#c# #asp.net-mvc
#c# #asp.net-mvc
Вопрос:
Я использую службы клиентских приложений для аутентификации клиента (WPF) с ASP.Net членство, которое работает просто отлично. Однако на сервере у меня есть дополнительные запросы MVC, которые я должен аутентифицировать при вызове их с клиента. При просмотре доступного вызова Membership.ValidateUser я не вижу, как это мне помогает каким-либо образом, поскольку мне нужно проверять каждый отдельный вызов.
Я предполагаю, что первым шагом является привязка [Authorize]
к каждому вызову MVC.
Могу ли я получить токен безопасности или извлечь cookie для CookieContainer, или я просто чего-то недопонимаю?
Комментарии:
1. Когда вы говорите [Аутентифицировать], вы имеете в виду [Авторизовать] правильно. «У меня есть дополнительные запросы MVC, которые я должен аутентифицировать при вызове их с клиента». Кто является клиентом? Само приложение WPF?
2. Спасибо, внесено исправление. И да, именно приложение WPF является клиентом.
Ответ №1:
Я предполагаю, что вы ASP.Net Сайт MVC, службы WCF размещены в одном виртуальном приложении и ASP.Net включен режим совместимости.
Если вы используете WPF для аутентификации пользователя путем вызова веб-службы, выполните следующие действия
На стороне сервера
-
Реализовать код для выполнения аутентификации
-
После успешной аутентификации создайте файл cookie для проверки подлинности формы и добавьте его в коллекцию файлов cookie для ответов.
На стороне клиента
- Класс client, который вы используете для подключения к службе аутентификации, должен содержать статический экземпляр класса CookieContainer.
- После успешной аутентификации добавьте полученный файл cookie в этот контейнер файлов cookie и передавайте его при каждом последующем запросе.
Отсюда все запросы к ASP.Net Приложение MVC или любая служба будут содержать cookie, и пользователь автоматически получит авторизацию. Проверьте это сообщение в блоге для примера
, надеюсь, это поможет.
Комментарии:
1. В любом случае это интегрируется со службами клиентских приложений. Я имею в виду, зачем использовать отдельный метод входа, возвращающий cookie, когда у нас уже есть метод ValidateUser служб клиентских приложений?
2. Сообщение в блоге — это всего лишь пример. Когда вы вызываете ValidateUser в центре сертификации, он добавляет файл cookie аутентификации в заголовок http, и он передается при всех последующих запросах