Updating the Expiry time on a Cookie

Hi all,

Once a cookie has been created using ASP, is it possible to update it's expiry time?
I would like to keep updating a cookie whilst a user is using the Web Site, but expire after 3 minutes of inactivity.

I am using ASP under WinCE 5.0, so I don't think that 'Session' is available...

Any thoughts would be appreciated.

Best regards,

James
LVL 4
James AtkinSenior Principle Software EngineerAsked:
Who is Participating?
 
dosthCommented:
If MM_grantAccess Then
    Response.Cookies("MM_Username") = Request.Cookies("MM_Username")
    Response.Cookies("MM_UserID")   = Request.Cookies("MM_UserID")
    Response.Cookies("MM_Username").Expires = DateAdd("s", 120, now())
    Response.Cookies("MM_UserID").Expires = DateAdd("s", 120, now())
End If
0
 
dosthCommented:
Try:
Response.Cookies("cookiename").expires=Dateadd("n" , 3, Now())
0
 
James AtkinSenior Principle Software EngineerAuthor Commented:
Hi,

Thanks for the info. I have tried this and I get the following error...

The collection object specified is read-only
ASP scripting compilation error: '80020009'
Description:
In file: Security.asp
On line: 29

Any thoughts? Am I doing something stupid??? :-O

James
0
Get your problem seen by more experts

Be seen. Boost your question’s priority for more expert views and faster solutions

 
dosthCommented:
do you have the cookie added in yor code already

use that "cookiename" instead of this
0
 
James AtkinSenior Principle Software EngineerAuthor Commented:
Hi,
I updated the cookie name to match mine.
I have attached the code for the Login.asp (takes the login info) and the Securit.asp (included on all pages to ensure the valid credentials)
SECURITY.ASP*********************************
<%
      intDoHome = 1
      if (intDoHome = 1) then 
%>
<%
' *** Restrict Access To Page: Grant or deny access to this page
MM_authorizedUsers="1,2"
MM_authFailedURL="login.asp"
MM_grantAccess=false
 
If Request.Cookies("MM_Username") <> "" Then
  If (false Or CStr(Request.Cookies("MM_UserAuthorization"))="") Or _
         (InStr(1,MM_authorizedUsers,Request.Cookies("MM_UserAuthorization"))>=1) Then
    MM_grantAccess = true
  End If
End If
 
If MM_grantAccess Then
    Response.Cookies("MM_Username").Expires = DateAdd("s", 120, now())
    Response.Cookies("MM_UserID").Expires = DateAdd("s", 120, now())
End If
 
 
If Not MM_grantAccess Then
  MM_qsChar = "?"
  If (InStr(1,MM_authFailedURL,"?") >= 1) Then MM_qsChar = "&"
  MM_referrer = Request.ServerVariables("URL")
  x_strRequestQueryString = Request.QueryString
  if (Len(x_strRequestQueryString) > 0) Then MM_referrer = MM_referrer & "?" & x_strRequestQueryString
  MM_authFailedURL = MM_authFailedURL & MM_qsChar & "accessdenied=" & Server.URLEncode(MM_referrer)
  Response.Redirect(MM_authFailedURL)
End If
%>
<%
      End if 
%>
 
 
 
 
LOGIN.ASP****************************************
 
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%Response.Buffer = True%>
<!--#include file="conn.asp" -->
<!--#include file="SQLConst.asp" -->
<!--#include file="SQLFunctions.asp" -->
<!--#include file="GeneralFunctions.asp" -->
 
<%
' *** Validate request to log in to this site.
MM_LoginAction = Request.ServerVariables("URL")
 
x_strRequestQueryString = Request.QueryString
If x_strRequestQueryString<>"" Then MM_LoginAction = MM_LoginAction + "?" + xServer.HTMLEncode(Request.QueryString)
MM_valUsername=CStr(Request.Form("username"))
If MM_valUsername <> "" Then
      MM_fldUserAuthorization="intAccessLevel"
      MM_redirectLoginSuccess="home.asp"
      MM_redirectLoginFailed="failed.asp"
      MM_flag="ADOCE.Recordset.3.1"
      Set cn = CreateObject("ADOCE.Connection.3.1")
      set MM_rsUser = CreateObject(MM_flag)
      cn.Open MM_conn_STRING
      MM_rsUser.Source = "SELECT txtUsername, txtPassword, intUserID"
      If MM_fldUserAuthorization <> "" Then MM_rsUser.Source = MM_rsUser.Source & "," & MM_fldUserAuthorization
      MM_rsUser.Source = MM_rsUser.Source & " FROM tblUsers WHERE txtUsername='" & Replace(MM_valUsername,"'","''") &"' AND txtPassword='" & Replace(Request.Form("password"),"'","''") & "'"
      MM_rsUser.Open MM_rsUser.Source, cn, adOpenStatic, adLockReadOnly
 
      If Not MM_rsUser.EOF Or Not MM_rsUser.BOF Then
            ' username and password match - this is a valid user
            Response.Cookies("MM_Username") = MM_valUsername
            Response.Cookies("MM_UserID") = MM_rsUser("intUserID")
            
            'Response.cookies("MM_Username").expires = Date + 1
            'Response.cookies("MM_UserID").expires = Date + 1
 
            Response.Cookies("MM_Username").Expires = DateAdd("s", 120, now())
            Response.Cookies("MM_UserID").Expires = DateAdd("s", 120, now())
 
 
            If (MM_fldUserAuthorization <> "") Then
                  Response.Cookies("MM_UserAuthorization") = CStr(MM_rsUser.Fields.Item(MM_fldUserAuthorization).Value)
            Else
                  Response.Cookies("MM_UserAuthorization") = ""
            End If
 
            if CStr(Request.QueryString("accessdenied")) <> "" And true Then
                  MM_redirectLoginSuccess = Request.QueryString("accessdenied")
            End If
            MM_rsUser.Close
            Response.Redirect(MM_redirectLoginSuccess)
      End If
      MM_rsUser.Close
      Response.Redirect(MM_redirectLoginFailed)
End If
%>

Open in new window

0
 
dosthCommented:
can you tell mw what is the issue with your current code?
0
 
James AtkinSenior Principle Software EngineerAuthor Commented:
When it gets to the :

If MM_grantAccess Then
    Response.Cookies("MM_Username").Expires = DateAdd("s", 120, now())
    Response.Cookies("MM_UserID").Expires = DateAdd("s", 120, now())
End If

it fails with "ASP scripting compilation error: '80020009'" as above
0
 
dosthCommented:
if you comment the cookies line, it is okay?

i see no issues with the code
0
 
James AtkinSenior Principle Software EngineerAuthor Commented:
It all works fine without that code, however the cookie expires after 3 minutes - even if the user is using the interface.

What I want is to update the expiry every time a user interacts with the interface, therefore it expires after 3 minutes of inactivity.
0
 
James AtkinSenior Principle Software EngineerAuthor Commented:
Excellent! Thanks!!!
0
 
dosthCommented:
thanks
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.