C#winform utiliza el método de publicación para enviar el nombre de usuario y la contraseña a la página URL especificada.
///Crea una solicitud HTTP en modo POST.
///</summary>
///<nombre del parámetro = "url">URL solicitada
/ //& lt; = " parámetros " & gt Diccionario de nombres de parámetros y valores de parámetros publicados con la solicitud
///& lt nombre de parámetro = " timeout " & gt Tiempo de espera de la solicitud
///& lt; param name = " userAgent " & gtInformación solicitada del navegador del cliente, que puede estar vacía
///& lt; param name = " request encoding " & gt ;La codificación utilizada cuando enviando solicitudes HTTP
///<param name = "cookies">Si no se requiere autenticación, la información de la cookie enviada a través de la solicitud HTTP puede estar vacía
///< return></returns>
Respuesta web http estática pública createposhttpresponse(URL de cadena, IDictionary & ltstring, parámetros de cadena & gt, int? tiempo de espera, agente de usuario de cadena, codificación de solicitud de codificación, cookies CookieContainer)
{
if (String.IsNullOrEmpty(url))
{
Lanza una nueva ArgumentNullException(" URL ");
}
if (requestEncoding == null)
{
lanza New ArgumentNullException(" codificación de solicitud ");
}
Solicitud HttpWebRequest = null
//Si envía una solicitud HTTPS,
if ( URL . StartsWith ( " https " , StringComparison . Caso común))
{
ServicePointManager. ServerCertificateValidationCallback = nuevo RemoteCertificateValidationCallback(CheckValidationResult);
Solicitud = WebRequest. Cree (url) como una solicitud HttpWebRequest
. VersiónProtocolo = VersiónHttp. Versión 10;
}
Otro
{
Solicitud = WebRequest. Cree (url) como una solicitud HttpWebRequest
}
. Método = " POST
Solicitud. tipo de contenido = " aplicación/x-www-form-urlencoded ";
If (! String. IsNullOrEmpty(userAgent))
{
Solicitud UserAgent = userAgent
}
Otro
{
Solicitud.
UserAgent = DefaultUserAgent
}
if (timeout.hash)
{
solicitud. tiempo de espera = tiempo de espera. valor;
}
if (cookie!=null)
{
Solicitud. CookieContainer = cookies
//Solicitud. CookieContainer.Add(cookie);
}
//Si se requieren datos POST,
if (!(parameter==null||parameter.count = = 0))
{
StringBuilder buffer = new StringBuilder();
int I = 0;
foreach(parámetro clave de cadena.)
{
if (i & gt0)
{
buffer. anexar formato(&{0}={1} ",key,parameters[key]);
}
Otro
{
Buffer.AppendFormat("{0}={1} ",clave,parámetros[clave]);
}
i++;
}
Bytes[]Data = RequestEncoding. GetBytes(Buffer.ToString());
Use(Stream stream = Request.GetRequestStream())
{
Escribir(datos, 0, datos. longitud);
}
}
GetResponse () como HttpWebResponse
}
Bool estático privado CheckValidationResult (remitente del objeto, certificado X509Certificate, cadena X509Chain, errores SslPolicyErrors)
{
Devuelve verdadero//Siempre aceptar
}
}