编程方式的登陆 ASP.NET

    技术2022-05-11  49

    Form

    构造request到登陆的页面,检查当前页面的html来获取要post的username和password对应的input的name,然后post提交进行登陆。

    非form

    1. 访问登陆站点,进行用户验证,然后保存cookie到内存中

    {//设置用户信息,发起请求HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(StocknetJsCfg.Xoi_UrlLogin);webRequest.Credentials = new NetworkCredential(User, Pwd);HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();//从响应头中获取验证的cookie信息authenticateCookieText = webResponse.Headers[“Set-Cookie”];//Remove expires info authenticateCookieText = expiresRegex.Replace(authenticateCookieText, "");}

    2. 使用保存在内存中的验证cookie访问其他受限页面

    {HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);webRequest.Headers.Set("Accept-Encoding","gzip");//设置验证COOKIE放到请求中webRequest.CookieContainer = new CookieContainer();webRequest.CookieContainer.SetCookies(webRequest.Address, authenticateCookieText);HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();Stream respDecode;switch (webResponse.ContentEncoding) {case "gzip":    respDecode = new GZipInputStream(webResponse.GetResponseStream());    break;case "deflate":    respDecode = new InflaterInputStream(webResponse.GetResponseStream(), new Inflater(true));    break;default:          // "text/xml"    respDecode = webResponse.GetResponseStream();    break;}....}

    最新回复(0)