Thursday, December 23, 2021

ஏஎஸ்பி டாட்நெட்டில் குக்கீஸ்.

 


 

ஏஎஸ்பி டாட் நெட்டில் டேட்டாவை ஒரு பக்கத்தில் இருந்து மற்றொரு பக்கத்திற்கு அனுப்ப நிறைய வழிவகைகள் உள்ளது.அதில் ஒன்று குக்கிஸ் ஆகும்.

பொதுவாக இணைய தளங்கள் கிளையண்ட் மெசினில் பயனர் தேர்வுகள், மற்றும் சில டேட்டாக்களை சேமிக்க குக்கீஸ்களை பயன்படுத்துகின்றது.

குக்கீஸ்கள் பொதுவாக இரண்டு வகைப்படும்.

1.      பெர்சிஸ்டென்ஸ் குக்கீஸ்

2.      நான் பெர்சிஸ்டென்ஸ் குக்கீஸ்.

பெர்சிஸ்டென்ஸ் குக்கீஸ்.

பிரவுசரை மூடினாலும் கிளையண்ட் மெசினில் சேமிக்கப்பட்ட நிலையிலேயே இருக்கும்.HttpCookie ஆப்ஜெகட்டின் expires பிராப்பர்ட்டியை பயன்படுத்தி நாம் எவ்வளவு காலம் டேட்டாவை கிளையண்ட் மெசினில் சேமிக்கப்படவேண்டும் என்பதை கான்பிக்ரேசன் செய்யலாம்.

நான் பெர்சிஸ்டென்ஸ் குக்கீஸ்.

Expires பிராப்பர்ட்டியை பயன்படுத்தாவிட்டால் அது நான் பெர்சிடென்ஸ் குக்கீஸ் எனப்படுகின்றது.இவ்வகை குக்கீஸ்கள் பிரவுசரை மூடியவுடன் அழிந்து விடும்.

 

கீழ்வரும் சான்று நிரலில் வெப் ஃபார்ம் ஒன்றில் பயனர் பெயர்,இமெயில் போன்ற டேட்டாக்கள் குக்கீஸில் சேவ் செய்யப்படுகின்றது. வெப் ஃபார்ம் இரண்டில் குக்கீஸில் இருந்து டேட்டா ரீடிரைவ் செய்யப்பட்டு காட்சிப்படுத்தப்படுகின்றது.

 

WebForm1.aspx HTML source:
<div style="font-family: Arial">
<table>
    <tr>
        <td colspan="2">
            <h1>
                This is WebForm1</h1>
        </td>
    </tr>
    <tr>
        <td>
            <b>Name</b>
        </td>
        <td>
            :<asp:TextBox ID="txtName" runat="server">
            </asp:TextBox>
        </td>
    </tr>
    <tr>
        <td>
            <b>Email</b>
        </td>
        <td>
            :<asp:TextBox ID="txtEmail" runat="server">
            </asp:TextBox>
        </td>
    </tr>
    <tr>
        <td colspan="2"> 
            <asp:Button ID="btnSendData" runat="server" 
            Text="Go to WebForm2" onclick="btnSendData_Click" />
        </td>
    </tr>
</table>
</div>

WebForm1.aspx.cs code:
protected void btnSendData_Click(object sender, EventArgs e)
{
    // Create the cookie object
    HttpCookie cookie = new HttpCookie("UserDetails");
    cookie["Name"] = txtName.Text;
    cookie["Email"] = txtEmail.Text;
    // Cookie will be persisted for 30 days
    cookie.Expires = DateTime.Now.AddDays(30);
    // Add the cookie to the client machine
    Response.Cookies.Add(cookie);

    Response.Redirect("WebForm2.aspx");
}

 

WebForm2.aspx HTML Source:
<div style="font-family: Arial">
<table>
    <tr>
        <td colspan="2">
            <h1>This is WebForm2</h1>
        </td>
    </tr>
    <tr>
        <td>
            <b>Name</b>
        </td>
        <td>
            :<asp:Label ID="lblName" runat="server">
            </asp:Label>
        </td>
    </tr>
    <tr>
        <td>
            <b>Email</b>
        </td>
        <td>
            :<asp:Label ID="lblEmail" runat="server">
            </asp:Label>
        </td>
    </tr>
</table>
</div>

WebForm2.aspx.cs Code:
protected void Page_Load(object sender, EventArgs e)
{
    HttpCookie cookie = Request.Cookies["UserDetails"];
    if (cookie != null)
    {
        lblName.Text = cookie["Name"];
        lblEmail.Text = cookie["Email"];
    }
}

ஏஎஸ்பி டாட்நெட்டில் குக்கீஸ் எனேபிள் செய்யப்பட்டிருக்கின்றதா இல்லையா என்பதை எவ்வாறு கண்டறியலாம். இணையத்தில் நிறைய கட்டுரைகளீல் Request.Browser.Cookies பயன்படுத்தி அதை அறியலாம் என்று குறிப்பிடப்பட்டுள்ளது.அது தவறாகும் உண்மையில் Request.Browser.Cookies பயன்படுத்தி பிரவுசர்கள் குக்கீஸ்களை சப்போர்ட் செய்கின்றதா என்பதை மட்டுமே அறியலாம்.

உண்மையில் இப்பொழுது வரும் மாடர்ன் பிரவுரசர்கள் எல்லாமே குக்கீஸ்களை சப்போர்ட் செய்கின்றது.

if (Request.Browser.Cookies)
{
    //Cookies Enabled
}
else
{
    //Cookies Disabled
}

உண்மையில் மேற்காணும் நிரலை பயன்படுத்தி பிரவுசர்கள் குக்கீஸ்களை சப்போர்ட் செய்கின்றதா என்பதை மட்டுமே அறியலாம்.

குக்கீஸ்கள் எனேபிள் செய்யப்பட்டுள்ளதா என்பதை கண்டறிய கீழ் வரும் படிநிலைகளை பயன்படுத்தவும்.

1.      குக்கீஸ்களை பயன்படுத்தி சான்று நிரல் ஒன்றை எழுதவும்

2.      அதே பக்கத்திற்கு ரீடைரெக்ட் செய்யவும்.

3.      குக்கீஸை ரீட் செய்யவும்.

4.      குக்கீஸ் இருந்தால் குக்கீஸ் எனேபிள் செய்யப்பட்ட்டிருக்கின்றதா என்பதை அறியவும்.

5.      இல்லையெனில் குக்கீஸ் டிஸேபிள் செய்யப்பட்டுள்ளது என்று அர்த்தம்.

இண்டெர்நெட் எக்ஸ்புரோரில் குக்கீசை எவ்வாறு டிஸேபிள் செய்கின்றது.

1.      டூல்ஸ் என்பதை கிளிக்ல் செய்யவும்.

2.      இண்டெர்நெட் ஆப்சன்ஸ் என்பதை தேர்வு செய்யவும்.

3.      பிரைவசி டேப்பை கிளிக் செய்யவும்.

4.      செட்டிங்க்ஸ் என்பதற்கு கீழே உள்ள அட்வான்ஸ்டு என்ற பட்டனை கிளிக் செய்யவும்.

5.      Override automatics cookie handling என்ற செக் பாக்சை கிளிக் செய்யவும்.ள

6.      First party cookies and  third party cookie கீழே உள்ள block என்ற இர ண்டு ரேடியோ பட்டன்களை தேர்வு செய்யவும்.

மேலே உள்ள படி நிலைகள் இணையத்தில் உங்கள் குக்கீஸ்களை டிசேபிள் செய்ய மட்டுமே முடியும். ஆனால் உங்கள் கிளையண்ட் மெசினில் local host என்பதில் தடை செய்ய பின் வரும் படி நிலைகளை பயன்படுத்தவும்.

1.      பயன்பாட்டை இயக்கவும்.

2.      F12 என்ற பட்டனை கிளிக் செய்தால் developer options என்பது ஓபன் ஆகும்.

3.      Cache - Disable Cookies என்பதை தேர்வு செய்யலாம்.

WebForm1.aspx HTML source:
<div style="font-family: Arial">
<table>
    <tr>
        <td colspan="2">
            <h1>
                This is WebForm1</h1>
        </td>
    </tr>
    <tr>
        <td>
            <b>Name</b>
        </td>
        <td>
            :<asp:TextBox ID="txtName" runat="server">
            </asp:TextBox>
        </td>
    </tr>
    <tr>
        <td>
            <b>Email</b>
        </td>
        <td>
            :<asp:TextBox ID="txtEmail" runat="server">
            </asp:TextBox>
        </td>
    </tr>
    <tr>
        <td colspan="2"> 
            <asp:Button ID="btnSendData" runat="server" 
            Text="Go to WebForm2" onclick="btnSendData_Click" />
        </td>
    </tr>
    <tr>
        <td colspan="2"> 
            <asp:Label ID="lblMessage" runat="server"
            ForeColor="Red" Font-Bold="true">
            </asp:Label>
        </td>
    </tr>
</table>
</div>

WebForm1.aspx.cs code:
protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        // Check if the browser supports cookies
        if (Request.Browser.Cookies)
        {
            if (Request.QueryString["CheckCookie"] == null)
            {
                // Create the test cookie object
                HttpCookie cookie = new HttpCookie("TestCookie", "1");
                Response.Cookies.Add(cookie);
                // Redirect to the same webform
                Response.Redirect("WebForm1.aspx?CheckCookie=1");
            }
            else
            {
                //Check the existence of the test cookie
                HttpCookie cookie = Request.Cookies["TestCookie"];
                if (cookie == null)
                {
                    lblMessage.Text = "We have detected that, the cookies are disabled on your browser. Please enable cookies.";
                }
            }
        }
        else
        {
            lblMessage.Text = "Browser doesn't support cookies. Please install one of the modern browser's that support cookies.";
        }
    }
}

protected void btnSendData_Click(object sender, EventArgs e)
{
    // Create the cookie object
    HttpCookie cookie = new HttpCookie("UserDetails");
    cookie["Name"] = txtName.Text;
    cookie["Email"] = txtEmail.Text;
    // Cookie will be persisted for 30 days
    //cookie.Expires = DateTime.Now.AddDays(30);
    // Add the cookie to the client machine
    Response.Cookies.Add(cookie);

    Response.Redirect("WebForm2.aspx");
}

WebForm2.aspx HTML Source:
<div style="font-family: Arial">
<table>
    <tr>
        <td colspan="2">
            <h1>This is WebForm2</h1>
        </td>
    </tr>
    <tr>
        <td>
            <b>Name</b>
        </td>
        <td>
            :<asp:Label ID="lblName" runat="server">
            </asp:Label>
        </td>
    </tr>
    <tr>
        <td>
            <b>Email</b>
        </td>
        <td>
            :<asp:Label ID="lblEmail" runat="server">
            </asp:Label>
        </td>
    </tr>
</table>
</div>

WebForm2.aspx.cs Code
protected void Page_Load(object sender, EventArgs e)
{
    HttpCookie cookie = Request.Cookies["UserDetails"];
    if (cookie != null)
    {
        lblName.Text = cookie["Name"];
        lblEmail.Text = cookie["Email"];
    }
}

 

நன்றி.

முத்து கார்த்திகேயன் ,மதுரை.

 

ads Udanz

No comments:

Post a Comment