Службы клиентских приложений — Аутентификация от клиента WPF

#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, и он передается при всех последующих запросах