Аутентификация пользователя ASP.NET MVC из приложения WPF
=========================================================

Как я могу аутентифицировать пользователя (с помощью имени пользователя и пароля) приложения ASP.NET MVC? Я пытаюсь сделать это с помощью`WebClient`, проходя`NetworkCredentials`, отправив запрос в приложение ASP.NET MVC из моего клиента WPF. Как мне обработать этот запрос на сервере? Как я могу получить переданные имя пользователя и пароль?

Я использую проверку подлинности с помощью форм в приложении ASP.NET MVC (по умолчанию, которое создается с новым проектом).

Проверка подлинности с помощью форм выполняется в два этапа:

Пользователь заходит на страницу входа, вводит свое имя пользователя и пароль и отправляет их на сервер.Сервер проверяет их, и если они верны, он отправляет куки-файл аутентификации, который отправляется клиенту. Клиент сохраняет этот файл cookie и отправляет его вместе с каждым последующим запросом на сервер.Таким образом, для достижения этого в приложении WPF вам необходимо сначала получить файл cookie для аутентификации. Поэтому сначала отправьте запрос POST на страницу входа в систему вместе с именем пользователя и паролем и прочитайте возвращенный файл cookie (для этого необходимо установить свойство CookieContainer в запросе HttpWebRequest, чтобы он мог перехватить файл cookie). Получив cookie, вы повторно используете контейнер cookie в последующих вызовах к аутентифицированным страницам.

Вы можете оформить заказ[этот пример кода](https://stackoverflow.com/questions/2798610/login-to-website-and-use-cookie-to-get-source-for-another-page/2798796#2798796) чтобы помочь вам (просто замените адреса и имена параметров).



Этот код работал для меня, используя подход Дарина и класс WebClientEx по их ссылке. Моя форма WPF должна пройти аутентификацию в приложении MVC и сохранить имя и значение возвращенного файла cookie для аутентификации в статических свойствах CookieName и CookieValue. Затем функция CreateUser () может получить доступ к защищенному действию в приложении MVC.