完美解决PJ的Cookies保存时限问题!可选择记录登陆时长!_应用技巧

http://mr-w.cn/
一直被这个问题所困扰!!现在终于完美解决啦!!献给那些需要前台记住登录信息的朋友!(此方法经过我的使用验证不存在星铃丹管理员所说的后台会持续登陆的安全隐患...后台还是和原版一样的,效果只针对前台!!)
感谢Wady和IFairy...
请大家不要只看不回,只回不来我的博客坐坐...回帖是美德!做人要厚道!!

下面是修改方法...

1.首先修改common/checkUser.asp(主要是这个!!)
将以下原码

[Copy to clipboard]CODE:
'进行MD5密码验证,转换旧帐户密码验证方式
                    dim strSalt
                    strSalt=randomStr(6)
                    memLogin("mem_salt")=strSalt
                    memLogin("mem_LastIP")=getIP()
                    memLogin("mem_lastVisit")=now()
                    memLogin("mem_hashKey")=HashKey
                    memLogin("mem_Password")=SHA1(Password&strSalt)
                            Response.Cookies(CookieName)("memName")=memLogin("mem_Name")
                            Response.Cookies(CookieName)("memHashKey")=HashKey
                            if Request.Form("KeepLogin")="1" then Response.Cookies(CookieName).Expires=Date+365
                            memLogin.Update
                            ReInfo(0)="登录成功"
                            ReInfo(1)="<b>"&memLogin("mem_Name")&"</b>,欢迎你的再次光临。<br/><a href=""default.asp"">点击返回主页</a>"
                            ReInfo(2)="MessageIcon"
                    ReInfo(3)=true
                   End IF
                 else
                   if memLogin("mem_Password")<>SHA1(Password&memLogin("mem_salt")) then
                            ReInfo(0)="错误信息"
                             ReInfo(1)="<b>用户名与密码错误</b><br/><a href=""javascript:history.go(-1);"">请返回重新输入</a>"
                            ReInfo(2)="ErrorIcon"
                            logout(false)
                   else
                    memLogin("mem_LastIP")=getIP()
                    memLogin("mem_lastVisit")=now()
                    memLogin("mem_hashKey")=HashKey
                            Response.Cookies(CookieName)("memName")=memLogin("mem_Name")
                            Response.Cookies(CookieName)("memHashKey")=HashKey
                            if Request.Form("KeepLogin")="1" then Response.Cookies(CookieName).Expires=Date+365
                            memLogin.Update
                            ReInfo(0)="登录成功"
                            ReInfo(1)="<b>"&memLogin("mem_Name")&"</b>,欢迎你的再次光临。<br/><a href=""default.asp"">点击返回主页</a><meta http-equiv=""refresh"" content=""3;url=default.asp""/>"
                            ReInfo(2)="MessageIcon"
                    ReInfo(3)=true
                   end if
                 end if
                 memLogin.Close
                 Set memLogin=Nothing
  login=ReInfo
end function

修改成

[Copy to clipboard]CODE:
'进行MD5密码验证,转换旧帐户密码验证方式 
     dim strSalt 
     strSalt=randomStr(6) 
     memLogin("mem_salt")=strSalt 
     memLogin("mem_LastIP")=getIP() 
     memLogin("mem_lastVisit")=now() 
     memLogin("mem_hashKey")=HashKey 
     memLogin("mem_Password")=SHA1(Password&strSalt) 
     Response.Cookies(CookieName)("memName")=memLogin("mem_Name") 
     Response.Cookies(CookieName)("memHashKey")=HashKey 
     if Cint(Request.Form("KeepLogin"))<>0 then Response.Cookies(CookieName).Expires=Date+Cint(Request.Form("KeepLogin")) 
     memLogin.Update 
     ReInfo(0)="登陆成功" 
     ReInfo(1)="<b>"&memLogin("mem_Name")&"</b>,欢迎你的再次光临。<br/><a href=""default.asp"">点击返回主页</a>" 
     ReInfo(2)="MessageIcon" 
     ReInfo(3)=true 
    End IF 
    else 
    if memLogin("mem_Password")<>SHA1(Password&memLogin("mem_salt")) then 
     ReInfo(0)="错误信息" 
     ReInfo(1)="<b>用户名与密码错误</b><br/><a href=""javascript:history.go(-1);"">请返回重新输入</a>" 
     ReInfo(2)="ErrorIcon" 
     logout(false) 
    else 
     memLogin("mem_LastIP")=getIP() 
     memLogin("mem_lastVisit")=now() 
     memLogin("mem_hashKey")=HashKey 
    Response.Cookies(CookieName)("memName")=memLogin("mem_Name") 
     Response.Cookies(CookieName)("memHashKey")=HashKey 
     if Cint(Request.Form("KeepLogin"))<>0 then Response.Cookies(CookieName).Expires=Date+Cint(Request.Form("KeepLogin")) 
     memLogin.Update 
     ReInfo(0)="登陆成功" 
     ReInfo(1)="<b>"&memLogin("mem_Name")&"</b>,欢迎你的再次光临。<br/><a href=""default.asp"">点击返回主页</a><meta http-equiv=""refresh"" content=""3;url=default.asp""/>" 
     ReInfo(2)="MessageIcon" 
     ReInfo(3)=true 
    end if 
    end if 
    memLogin.Close 
    Set memLogin=Nothing 
  login=ReInfo 
end function 

然后搜索

[Copy to clipboard]CODE:
memLogin("mem_LastIP")=getIP()

有三处!将其删除...

再搜索

[Copy to clipboard]CODE:

if CheckCookie("mem_LastIP")<>Guest_IP or isNull(CheckCookie("mem_LastIP")) then
      logout(true)
     else
      memName=CheckStr(Request.Cookies(CookieName)("memName"))
      memStatus=CheckCookie("mem_Status")
    end if

替换为

[Copy to clipboard]CODE:
      memName=CheckStr(Request.Cookies(CookieName)("memName"))
      memStatus=CheckCookie("mem_Status")

2.修改login.asp:
将以下代码替换<form name="checkUser" action="login.asp" method="post">至</form>断

[Copy to clipboard]CODE:
<form name="checkUser" action="login.asp" method="post"> 
<div id="MsgContent"> 
<div id="MsgHead">用户登录</div> 
<div id="MsgBody"> 
  <input name="action" type="hidden" value="login"/> 
  <label>用户名:<input name="username" type="text" size="18" class="userpass" maxlength="24"/></label><br/> 
  <label>密 码:<input name="password" type="password" size="18" class="userpass"/></label><br/> 
  <%if blog_useCode then%><label>验证码:<input name="validate" type="text" size="4" class="userpass" maxlength="4"/> <%=getcode()%></label><br/><%end if%> 
  <label>记住登陆: <select name="KeepLogin" id="KeepLogin" class="userpass"> 
  <option value="1" selected="selected">一天</option> 
  <option value="30" >一個月</option> 
  <option value="365">一年</option> 
  <option value="0">不用記住</option> 
  </select> 
  </label> 
  <br/> 
  <input type="submit" value="登 录" class="userbutton"/> <input type="button" value="用户注册" class="userbutton" onclick="location='register.asp'"/> 
  </div> 
</div> 
</form> 

附首页显示登陆框的方法
在library.asp里查找 退出系统</a>" 将以下代码替换原来的

[Copy to clipboard]CODE:
else
  userPanel=userPanel&"<form name=""checkUser"" action=""login.asp"" method=""post"" style=""margin:1px;""><input name=""action"" type=""hidden"" value=""login""/><label>用户:<input name=""username"" type=""text"" size=""12"" class=""userpass"" maxlength=""24""/></label><br/><label>密码:<input name=""password"" type=""password"" size=""12"" class=""userpass""/></label><br/><label>验证:<input name=""validate"" type=""text"" size=""4"" class=""userpass"" maxlength=""4""/> "&getcode()&"</label><br/><label>记住登陆: <select name=""KeepLogin"" id=""KeepLogin"" class=""userpass""><option value=""1"" selected=""selected"">一天</option><option value=""30"" >一個月</option><option value=""365"">一年</option><option value=""0"">不用記住</option></select></label><br/><input type=""submit"" value=""登录"" class=""userbutton""/><input type=""button"" value=""会员注册"" class=""userbutton"" onclick=""location.href='register.asp'""/></form>"
end if  
end function

如果你懒得改或不会改的话请下载我打的包,覆盖原文件即可!(修改有风险,请自行备份原文件!!)

 点击下载此文件

时间: 2024-11-20 14:19:02

完美解决PJ的Cookies保存时限问题!可选择记录登陆时长!_应用技巧的相关文章

解决Asp.net Mvc返回JsonResult中DateTime类型数据格式问题的方法_实用技巧

问题背景:            在使用asp.net mvc 结合jquery esayui做一个系统,但是在使用使用this.json方法直接返回一个json对象,在列表中显示时发现datetime类型的数据在转为字符串是它默认转为Date(84923838332223)的格式,在经过查资料发现使用前端来解决这个问题的方法不少,但是我又发现在使用jquery easyui时,加载列表数据又不能对数据进行拦截,进行数据格式转换之后再加载,后来发现可以通过自定义JsonResult实现,认为这种

解决asp.net mvc UpdateModel更新对象后出现null问题的方法_实用技巧

在用asp.net mvc 4.0做项目的时候遇到的这种情况:情况分析: "在填写表单的时候,有一些表单没有填写,留空,然后直接post 提交表单,action中用UpdateModel 来更新model,结果发现那些没有填写的表单字段全部变成null."原因分析: 项目中做了判断null不能提交更新到数据库中,所以导致一直提交不上去 后来网上查了一下找到了解决办法,我在这里分享一下,方便以后遇到这种情况的朋友可以方便解决解决方法:新建一个类继承DefaultModelBinder u

解决iis7.5服务器上.net 获取不到https页面的信息_实用技巧

我的获取页面需要cookie,不需要的可以去掉: GET的方法: 复制代码 代码如下: /// <summary>        /// 获取URL访问的HTML内容 获取https 页面的        /// </summary>        /// <param name="Url">URL地址</param>        /// <returns>HTML内容</returns>        publ

完美兼容ie和firefox的asp.net网站加入收藏和设置主页_实用技巧

复制代码 代码如下: <script type="text/javascript">     function AddFavorite(sURL, sTitle) {         try {             window.external.addFavorite(sURL, sTitle);         }         catch (e) {             try {                 window.sidebar.addPane

asp.net 退出登陆(解决退出后点击浏览器后退问题仍然可回到页面问题)_实用技巧

复制代码 代码如下: Session.Abandon(); Response.Redirect("Login.aspx"); 但是这样点点击浏览器的后退仍然可以回到刚才的页面,这可不行,在网上找了一下,也有不少人遇到这样的问题,试了一些方法,都不管用.不过最后还是找到,共享一下. http://blog.csdn.net/lhypang2006/archive/2008/03/11/2170751.aspx 复制代码 代码如下: Session.Abandon(); Response.

AJAX中文乱码PHP完美解决方法

AJAX中文乱码问题,经过一个下午的努力终于完美解决,现将心得写下来,希望对那些还困绕在这个问题而头痛不已的人们有所帮助. 最近在做一个项目,遇到AJAX中文乱码问题,经过一个下午的努力终于完美解决,现将心得写下来,希望对那些还困绕在这个问题而头痛不已的人们有所帮助. 众所周知,使用AJAX传送和接收中文参数时,如果不在客户端和服务器做相应的处理就会出现乱码问题,在网上相应的文章也不少,但是有的情况下很难从中找到符合自己理想的答案,我今天就是在网上找了很多,但是都差不多,讲ASP和JSP的比较多

电源管理让Win7下载与待机完美解决

  俗话说"闲时收拾忙时用,书到用时方恨少".往往很多知名创业人士平时都喜欢看杂志书刊,整理对自己有用处的信息以备不时之需;作为学生,课上勤于笔记方便考试;企业年度业绩分析及财务收支的情况,则需要会计财务人员每日记录在帐等.这些事都需要我们合理利用空闲的时间,然后在关键时刻,不用浪费大把大把的时间轻而易举获取资料,加快工作效率.但是对于生活节奏日渐加快的今天看来,有些事似乎就显得跟不上节奏,出现矛盾的情况,比如说上网. A君是某高校大学生,校园网是要限时限量的,而且网速也是非常慢,有时

Windows2003 IIS6完美解决Wordpress伪静态的方法

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 前几天由于各种原因,韦文成博客所在服务器系统从Linux换回到了Windows 2003,博客也因此几天没能正常访问. 韦文成博客所使用的是Wordpress系统,在Nginx下进行伪静态是相当容易十分简单的事情,可是使用了IIS6就不是那么回事了,网上找了些IIS下Wordpress进行伪静态的方法,但大都不理想,比如利用404,利用ISA

AJAX中文乱码PHP中完美解决方法_AJAX相关

最近在做一个项目,遇到AJAX中文乱码问题,经过一个下午的努力终于完美解决,现将心得写下来,希望对那些还困绕在这个问题而头痛不已的人们有所帮助. 众所周知,使用AJAX传送和接收中文参数时,如果不在客户端和服务器做相应的处理就会出现乱码问题,在网上相应的文章也不少,但是有的情况下很难从中找到符合自己理想的答案,我今天就是在网上找了很多,但是都差不多,讲ASP和JSP的比较多(我是用的PHP),所以到最后都没找到自己满意的答案. AJAX的中文乱码可以大概分为两中,第一种是向服务器端发送中文参数时