Je dois m'authentifier sur un site à l'aide de l'authentification par formulaires, puis rediriger l'utilisateur vers ce site avec le cookie de session. Je n'ai pas compris comment réussir cela. Voici mon code jusqu'à présent. Je suis toujours redirigé vers la page de connexion de cette application. Toute aide est très appréciée!Rediriger l'utilisateur vers une page authentifiée qui utilise l'authentification par formulaires, en utilisant HTTP Location Header, HttpWebRequest/Response et Response.Cookies.Add()
protected void Button1_Click(object sender, EventArgs e)
{
string data = "nickname=&login={0}&password={1}&action_login.x=70&action_login.y=14action_login=Login";
string postdata = String.Format(data, "test", "test");
string page = @"http://1.1.1.1/home.asp";
string loginPage = @"http://1.1.1.1/auth.asp";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(loginPage);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.AllowAutoRedirect = false;
ASCIIEncoding encoding = new ASCIIEncoding(); //encoder
byte[] requestData = encoding.GetBytes(postdata); //encode post data
request.ContentLength = requestData.Length;
//write the post data to the request
Stream requestStream = request.GetRequestStream();
// Send the data.
requestStream.Write(requestData, 0, requestData.Length);
requestStream.Close();
try
{
HttpWebResponse response = (HttpWebResponse) request.GetResponse();
string cookieHeader = response.GetResponseHeader("Set-Cookie");
string cookieValue = cookieHeader.Replace("pp_session_id=", "");
HttpCookie cookie = new HttpCookie("pp_session_id",cookieValue);
cookie.Domain = "1.1.1.1";
cookie.Path = "/";
Response.Clear();
Response.StatusCode = 302;
//Response.AddHeader("Set-Cookie", cookieHeader);
Response.AddHeader("Location",page);
Response.RedirectLocation = page;
Response.Cookies.Add(cookie);
Response.Flush();
}
catch (WebException ex)
{
Response.Write(ex.Message);
}
}
Pourriez-vous s'il vous plaît partager comment vous avez finalement résolu cela. Je suis en train de mettre en place une sorte de système de connexion unique et je suis coincé ici. J'ai besoin de connecter automatiquement un utilisateur avec des informations d'identification connues. –