How to store a class in a cookie and retrieve?

Discussion in 'ASP General' started by yootaeho, Mar 22, 2007.

  1. yootaeho

    yootaeho Guest

    Hi,
    I have the following script
    <%@LANGUAGE=Javascript%>
    <%
    var myClass = new LoginInfo();
    myClass.sessionID = "1321312131";

    Response.Cookies("testingCookies") = myClass;

    var recievedCookies = new LoginInfo();
    recievedCookies = LoginInfo(Response.Cookies("testingCookies"));

    Response.Write(recievedCookies.sessionID);
    Response.End();

    function LoginInfo()
    {var sessionID;}
    %>

    How to make it work?

    Cheers
     
    yootaeho, Mar 22, 2007
    #1
    1. Advertisements

  2. You need to enable your object to serialise and deserialise the state of the
    object to a string.

    For example (by no means a complete implementation and is air code). :-

    function LoginInfo(vsStateIn)
    {
    var moState = vsStateIn ? eval(vsStateIn) : {}
    vsStateIn = null

    this.getSessionID = function() { return moState.sessionID; }
    this.putSessionID = function(value) { moState.sessionID = value; }

    this.serialise = function()
    {
    var sState = '{'
    for (var key in moState)
    {
    if (sState.length > 1) sState += ', '
    if (typeof(moState[key]) == 'string')
    sState += key + ": '" + moState[key].replace(/([\\|\'])/g,
    '\\$1') + "'"
    else
    sState += key + ": " + moState[key].toString()
    }
    sState += '}'
    return sState
    }
    }


    To store the object:-

    var oLogin = new LoginInfo()
    oLogin.putSessionID("1321312131")

    Response.Cookies("testingCookies") = oLogin.serialise() ;


    To retrieve the object:-

    var oLogin = new LoginInfo(Request.Cookies("testingCookies").Item)
    if (oLogin.getSessionID == "1321312131")
    {

    //is logged on

    }


    For further Ideas google JSON
     
    Anthony Jones, Mar 22, 2007
    #2
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.