Консольное приложение с проверкой подлинности ASP.NET - PullRequest
0 голосов
/ 05 января 2011

Вот ситуация, у меня есть консольное приложение, которое нужно запускать раз в день и делать несколько запросов к страницам, для просмотра которых требуется аутентификация.Страницы размещены в действительно простом веб-приложении ASP.Net.

Итак, я знаю, что для успешного прохождения запросов мне нужно пройти аутентификацию на сервере.Поэтому я подключил консольное приложение к провайдеру членства ASP.Net, который я использую для веб-приложения, и оно успешно определяет, является ли набор учетных данных действительным.Тем не менее, после вызова Membership.ValidateUser () любые запросы, которые я делаю, просто получают экран входа в систему.После некоторого прочтения кажется, что это потому, что мне не хватает важной информации о cookie, которая сохраняется в моем логине или что у вас есть.

Я использую основной WebClient для выполнения запросов и затем читаю /отбрасывая результат.

Итак, суть вопроса заключается в следующем: существует ли простой способ проверить информацию для входа в систему и удерживать ее, чтобы я мог успешно выполнять запросы, или это точно такой же случай?как и другие два вопроса, которые я обнаружил, которые требуют, чтобы WebClient сделал «ручной» запрос на вход на страницу login.aspx и попытался оттуда сохранить cookie?

Вопросы, на которые я ссылаюсь:

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

и

Войдите на веб-сайт и используйте cookie, чтобы получить источник для другой страницы.

Ответы [ 2 ]

0 голосов
/ 18 января 2011

Если целью является отправка данных на сервер и / или получение данных с сервера, то наиболее логичной архитектурой, вероятно, является создание веб-службы с использованием ASMX или WCF.Затем настройте службу на использование токена безопасности, например токена имени пользователя или токена SAML.Это уменьшит вероятность поломки клиента, когда код сервера изменит свою модель данных.

В противном случае, если вы хотите использовать только базовый WebClient, вам придется найти способ передать свои учетные данные встраницу входа и сохраните файл cookie для входа, который возвращается из запроса на вход.Затем убедитесь, что файл cookie для входа в систему включен во все последующие запросы, аналогично вопросу переполнения стека, на который вы ссылались: «Войдите на веб-сайт и используйте файл cookie, чтобы получить источник для другой страницы».

0 голосов
/ 05 января 2011

При использовании FormsAuthentication веб-сервер должен создать для вас билет для проверки подлинности с помощью форм.Лучший (единственный?) Способ сделать это - зайти на сайт, поэтому я бы просто зашел, как и другие вопросы.

...