PDA

View Full Version : خواندن و نوشتن یک کووکی با مسیر



FirstLine
یک شنبه 02 آذر 1382, 18:39 عصر
با سلام
من یه پروژه جدید درست کرده و فایلهلی مربوط به کاربران را داخل یک دایرکتوری کاربران، فایلهای مربوط به اخبار داخل یک دایرکتوری خبر و ... و یک دایرکتوری هم برای WebUserControl ها درست کرده ام.
یکی از این WebUserControl ها دارای یک قسمت برای Login کردن است که در تمام صفحات پروژه تکرار شده و در صورت Login صحیح یک کووکی درست میکند و از این به بعد یک منوی خاص برای کاربر ایجاد میکند.
حالا مشکل اینجاست که این کووکی درست کار نمیکند‌:
این قسمت برای نوشتن کووکی‌:
Dim Obj_Cookie As New HttpCookie("User_Name")
Obj_Cookie.Path = "/"
Obj_Cookie.Value = txt_UN.Text
Response.AppendCookie(Obj_Cookie)
Obj_Cookie.Expires = Now.AddYears(1)
Panel_Login.Visible = True
Panel_Profile.Visible = False


این قسمتا هم برای خواندن کووکی

If IsNothing(Request.Cookies("User_Name")) = False Then
If Len(Request.Cookies("User_Name").Value) > 0 Then
txt_UN.Text = Response.Cookies("User_Name").Value
Panel_Login.Visible = False
Panel_Profile.Visible = True
End If
End If

آیا باید برای خواندن هم باید مسیر بدهم ؟ این قسمت Login در یک WebUserControl وجود دارد ، و در همه صفحات تکرا شده و برای خواندن آن هم از داخل چند WebUserControl و در قسمت Load بعضی صفحات دیگر تکرار شده و در دایرکتوریهای مختلف که همه در Root وجود دارد .
با تشکر

Vahid_Nasiri
یک شنبه 02 آذر 1382, 20:08 عصر
نحوه ی استفاده از کوکی ها در ASP.NET با VB.NET :


<%@ Page Language="VB" %>

<script language="VB" runat="server">
Const COOKIE_NAME As String = "test-cookie-name"
Const COOKIE_VALUE As String = "test-cookie-value"

' Declare our cookie object
Dim objCookieObject As HttpCookie

Sub btnSetCookie_OnClick(Sender As Object, E As EventArgs)
' Create a cookie object - I'm passing name and value,
' but you can also pass in a name and set the value later.
' ie. objCookieObject = New HttpCookie(COOKIE_NAME)
objCookieObject = New HttpCookie(COOKIE_NAME, COOKIE_VALUE)

' We already set these above!
'objCookieObject.Name = COOKIE_NAME
'objCookieObject.Value = COOKIE_VALUE

' Additional cookie properties:
objCookieObject.Expires = New DateTime(2010, 11, 12)

' Normally you can leave these alone.
' The defaults will work fine for most uses.
'objCookieObject.Domain = "www.domain.com"
'objCookieObject.Path = "/path/"
'objCookieObject.Secure = True

Response.AppendCookie(objCookieObject)
End Sub

Sub btnRemoveCookie_OnClick(Sender As Object, E As EventArgs)
objCookieObject = New HttpCookie(COOKIE_NAME)

' Expire it on the day I was born just so we're sure it's a date in the past.
objCookieObject.Expires = New DateTime(1974, 11, 12)

Response.AppendCookie(objCookieObject)
End Sub

Sub btnGetCookie_OnClick(Sender As Object, E As EventArgs)
objCookieObject = Request.Cookies(COOKIE_NAME)

' In Beta 1 this worked fine... not with Beta 2.
'If Not(objCookieObject = Nothing) Then

If Not(objCookieObject Is Nothing) Then
lblCookieDetails.Text = objCookieObject.Name

lblCookieDetailsName.Text = objCookieObject.Name
lblCookieDetailsValue.Text = objCookieObject.Value

' For some reason I'm having trouble with this now...
' The setting seems to work, but I can't read it back.
' Anyone have any ideas? Email me -> john@asp101.com
lblCookieDetailsExpires.Text = objCookieObject.Expires.ToString

lblCookieDetailsDomain.Text = objCookieObject.Domain
lblCookieDetailsPath.Text = objCookieObject.Path
lblCookieDetailsSecure.Text = objCookieObject.Secure.ToString
lblCookieDetailsHasKeys.Text = objCookieObject.HasKeys.ToString
Else
lblCookieDetails.Text = "Cookie Not Set!"

lblCookieDetailsName.Text = ""
lblCookieDetailsValue.Text = ""
lblCookieDetailsExpires.Text = ""
lblCookieDetailsDomain.Text = ""
lblCookieDetailsPath.Text = ""
lblCookieDetailsSecure.Text = ""
lblCookieDetailsHasKeys.Text = ""
End If

' I'm ignoring collections. They're outside the realm of this basic sample.
' FYI: Additional properties related to cookie collections: Values, Item
End Sub
</script>

<html>
<body>

<h4>The cookie name we're using for this sample is: <em><%= COOKIE_NAME %></em></h4>

<form action="cookie.aspx" method="post" runat="server">
<asp:Button type="submit" id="btnSetCookie" text="Set Cookie" OnClick="btnSetCookie_OnClick" runat="server" />
<asp:Button type="submit" id="btnRemoveCookie" text="Remove Cookie" OnClick="btnRemoveCookie_OnClick" runat="server" />

<p>
To see the cookie's current status you'll need to click below. This is because the response which adds or deletes the cookie happens after the request is already done. As such, those changes aren't available from the request collection until the next request.
</p>

<asp:Button type="submit" id="btnGetCookie" text="Get Cookie Details" OnClick="btnGetCookie_OnClick" runat="server" />
</form>

<p>
<strong>Details of:</strong> <asp:label id="lblCookieDetails" runat="server" />
</p>

<table border="1">
<thead>
<tr>
<th>Property</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>Name</td>
<td><asp:label id="lblCookieDetailsName" runat="server" /></td>
</tr>
<tr>
<td>Value</td>
<td><asp:label id="lblCookieDetailsValue" runat="server" /></td>
</tr>
<tr>
<td>Expires</td>
<td><asp:label id="lblCookieDetailsExpires" runat="server" /></td>
</tr>
<tr>
<td>Domain</td>
<td><asp:label id="lblCookieDetailsDomain" runat="server" /></td>
</tr>
<tr>
<td>Path</td>
<td><asp:label id="lblCookieDetailsPath" runat="server" /></td>
</tr>
<tr>
<td>Secure</td>
<td><asp:label id="lblCookieDetailsSecure" runat="server" /></td>
</tr>
<tr>
<td>Has Keys</td>
<td><asp:label id="lblCookieDetailsHasKeys" runat="server" /></td>
</tr>
</tbody>
</table>

</body>
</html>