Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: ASP.NET MVC
Войти
Регистрация
Восстановить пароль
 
IcyWind
8 / 8 / 9
Регистрация: 19.09.2011
Сообщений: 272
1

WebClient и FormAuthentication. Взаимодействие

06.05.2014, 14:40. Просмотров 569. Ответов 0
Метки нет (Все метки)

Не смог найти нормальных статей/инструкций по использованию веб-клиента с аутентификацией форм MVC.
есть два проекта: веб-сервер MVC и консольное приложение, которое пытается с ним общаться.
Нашёл реализацию WebClient с поддержкой Cookie и таймаутом
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
public class CookieWebClient : WebClient
    {
 
        private int? _timeout = null;
        public int? Timeout
        {
            get
            {
                return _timeout;
            }
            set
            {
                _timeout = value;
            }
        }
 
 
        public CookieContainer CookieContainer { get; private set; }
 
 
        public CookieWebClient()
        {
            CookieContainer = new CookieContainer();
        }
 
 
        public void SetTimeout(int timeout)
        {
            _timeout = timeout;
        }
 
 
        protected override WebRequest GetWebRequest(Uri address)
        {
 
            var request = (HttpWebRequest)base.GetWebRequest(address);
            request.CookieContainer = CookieContainer;
 
            if (_timeout.HasValue)
            {
                request.Timeout = _timeout.Value;
            }
            return request;
        }
    }
Буду использовать этот класс в консольном приложении для "общения" с сайтом. Прежде всего пытаюсь пройти аутентификацию
C#
1
2
3
4
5
6
7
public void LogOn()
        {
            var values = new NameValueCollection { { "UserName", Login }, { "Password", Password } };
 
            var url = new Uri(Server + "/Account/Login");
            PupilWebClient.UploadValues(url, "POST", values);
        }
Всё проходит успешно. С помощью точки останова в приложении Web понимаю, что аутентификация прошла успешно.
Не смог найти:
1.) Как в консольном приложении проверить, была ли успешна аутентификацию.
2.) Если юзер не прошёл аутентификацию (или прошло стандартные 20 минут - сессия сбросилась), то веб-приложение сделает редирект любого запроса на Account/Login. Необходимо, чтобы в этом случае консольное приложение опять же поняло, что нужно пройти аутентификацию ещё раз. Снова не понятно как его об этом уведомить.

Добавлено через 25 минут
Нашёл свойство "ResponseHeaders" в WebClient. По-идеи, с помощью этих хедеров можно будет реализовать взаимодействие: уведомлять консольное приложение о том, что от него хотят)
Есть ли лучшие варианты?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.05.2014, 14:40
Ответы с готовыми решениями:

WebClient и FireFox
Добрый день, форумчане. Пытаюсь скачать файл. using (var client = new WebClient()) ...

Кеширование результата работы Webclient.DownloadStringAsync() (Windows Phone 8 Webclient)
Всем привет. Приложение для Windows Phone 8. Запускаю под дебагом. Обращаюсь на локальный...

Ссылки для скачивания с помощью WebClient.DownloadFile и WebClient.DownloadFileAsync
Ссылки какие должны быть, для скачивания webClient.DownloadFile и webClient.DownloadFileAsync Не...

WebClient.DownloadFileAsync и WebClient.DownloadFile
Если правильно понимаю, то WebClient.DownloadFileAsync и WebClient.DownloadFile это 2 разных...

WebClient
Доброго всем времени суток! Помогите пожалуйста. Есть винформ приложение которое парсит html код...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.05.2014, 14:40

Глюки WebCLient'a
Подскажите пожалуйста почему может быть такая тема. Вот примерно такой код public bool...

Threads and WebClient
НЕ могу понять одну вещь, почему при асинхронном скачивании и многопоточности, качается по два...

WebClient и цикл for
string id = textBox1.Text; //9904475 string urls = new string {"http://us.asos.com/prd/",...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru