读书人

大家做个这个东东没.该如何处理

发布时间: 2012-02-04 15:43:08 作者: rapoo

大家,做个这个东东没......
需求是这样的,首先在http://www.55188.com/logging.php?action=login注册个用户,然后自己写个程序实现登录,winform、webform都可以,要的结果,执行完这段程序后,我在打开http://www.55188.com/logging.php?action=login网站,就是已经登录的状态...,用户和密码我已经注册成功了,
用户"成功吧"密码"abc123"
最终要求,执行完代码也好程序也罢,反正再次打开这个网页就是已经登陆状态了。。




[解决办法]
使用InternetSetCookie和InternetGetCookie函数去设置和读取。
使用方法参见
http://www.google.com/search?hl=zh-CN&newwindow=1&safe=off&client=firefox-a&hs=idy&rls=org.mozilla%3Azh-CN%3Aofficial&q=c%23+InternetSetCookie&oq=c%23+InternetSetCookie&aq=f&aqi=&aql=&gs_sm=e&gs_upl=73611l74259l0l74656l3l3l0l0l0l0l0l0ll0l0
[解决办法]
既然需要下次打开页面还是已经登陆状态,那就需要登陆之后把需要的信息存进Cookie,用Session是肯定不行的。然后下次打开页面的时候去取相对应的Cookie来判断是否已经登陆。并且要把Cookie的过期时间设置的尽量长,比如登陆的时候有个复选框是一个星期之内自动登陆,如果选中,就设置Cookie的过期时间为7天,否则关闭浏览器时Cookie自动失效。


以下是Cookie的存取操作方法

C# code
/// </summary>     /// <param name="CookieName">Cookie名称</param>     /// <param name="CookieValue">Cookie值</param>     /// <param name="CookieTime">Cookie过期时间(小时),0为关闭页面失效</param>     public static void SaveCookie(string CookieName, string CookieValue, double CookieTime)    {        HttpCookie myCookie = new HttpCookie(CookieName);        DateTime now = DateTime.Now;        myCookie.Value = CookieValue;        //myCookie.Values = new NameValueCollection();        //NameValueCollection m = new NameValueCollection();                if (CookieTime != 0)        {            //第一方法设置Cookie时间的话,关闭浏览器不会自动清除Cookie                         myCookie.Expires = now.AddDays(CookieTime);            if (HttpContext.Current.Response.Cookies[CookieName] != null)                HttpContext.Current.Response.Cookies.Remove(CookieName);            HttpContext.Current.Response.Cookies.Add(myCookie);        }        else        {            if (HttpContext.Current.Response.Cookies[CookieName] != null)                HttpContext.Current.Response.Cookies.Remove(CookieName);            HttpContext.Current.Response.Cookies.Add(myCookie);        }    }    /// <summary>     /// 取得CookieValue     /// </summary>     /// <param name="CookieName">Cookie名称</param>     /// <returns>Cookie的值</returns>     public static string GetCookie(string CookieName)    {        HttpCookie myCookie = new HttpCookie(CookieName);        myCookie = HttpContext.Current.Request.Cookies[CookieName];        if (myCookie != null)            return myCookie.Value;        else            return null;    } 

读书人网 >asp.net

热点推荐