frostcox Ответов: 3

Было предпринято слишком много попыток автоматического перенаправления.


Эй, ребята, у меня есть консольное приложение, которое я пытаюсь подключить к своему веб-сайту и отправить обратно аутентификационный файл cookie. Если я вставляю url-адрес непосредственно в браузер, файл cookie возвращается просто отлично, но когда я пытаюсь подключиться через консольное приложение, я получаю следующую ошибку: "было предпринято слишком много автоматических перенаправлений." когда я ударил клиента.OpenRead(сурл)

Любая помощь очень ценится

консольное приложение
string sUrl = "http://localhost/CreateCookie.aspx?UserName=" + username + "&Password=" + password;

           client.Headers.Add("user-agent",
               "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");

           using (Stream data = client.OpenRead(sUrl))
           {
               using (StreamReader reader = new StreamReader(data))
               {
                   strCookie = reader.ReadToEnd();
               }
           }


web-страница
Dim sUserName As String = Request.QueryString("UserName")
Dim sPassword As String = Request.QueryString("Password")

Dim ticket As FormsAuthenticationTicket = New FormsAuthenticationTicket(1, sUserName, DateTime.Now, DateTime.Now.AddDays(30), False, _
"SignalR", FormsAuthentication.FormsCookiePath)
'/ Encrypt the ticket.
Dim encTicket As String = FormsAuthentication.Encrypt(ticket)
' // Create the cookie.
Response.Write(encTicket)
Response.End()

[no name]

http://stackoverflow.com/questions/518181/too-many-automatic-redirections-were-attempted-error-message-when-using-a-http

frostcox

Большое вам спасибо, что моя ошибка прекратилась. Очень ценю вашу помощь.

3 Ответов

Рейтинг:
21

Chamadness

Вероятно, вам следует использовать HttpWebRequest и контейнер cookie:

var client = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(sUrl);
client.CookieContainer = new System.Net.CookieContainer();


frostcox

Большое вам спасибо, что моя ошибка прекратилась. Очень ценю вашу помощь.

Chamadness

Добро пожаловать, рад помочь

Рейтинг:
2

Angelieri

На странице директива также используется

EnableSessionState="False"

Это работает на меня.


Рейтинг:
2

NunoGandum

привет,

у меня была эта ошибка, но я получил простое исправление
вам не нужен весь этот код, все, что вам нужно сделать, это в начале вашего приложения загрузить файл cookie следующим образом (извините, но я работаю с VB:), но его довольно просто конвертировать)

[your application namespace].Application.GetCookie(New Uri("https://[site]"))



Привет из Португалии
Гандум


Richard Deeming

ЧЕТЫРЕ ГОДА слишком поздно, и с кодом, который работает только в приложении WPF, а не в консольном приложении, как указано в вопросе.