Cookieの発行
サンプル
Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
' 方法1
Dim cookie As New HttpCookie("userName")
cookie.Value = "user1" ' Cookie の値
cookie.Expires = DateTime.Now.AddDays(1) ' Cookie 有効期間(1day)
Me.Response.Cookies.Add(cookie) ' 追加
' 方法2
Me.Response.Cookies("Status").Value = "LogOff"
Me.Response.Cookies("Status").Expires = DateTime.Now.AddHours(2)
Me.Label1.Text = Me.Response.Cookies("Status").Value
End Sub
参考文献
http://atamoco.boy.jp/asp/20110423_1.phpセキュアクッキーの設定
http://blogs.yahoo.co.jp/dk521123/28437833.htmlでも記載したが、セキュアクッキーにする必要がある。そこで、ASP.netでの設定方法を記載する。
[1] Global.asax の Application_EndRequest を利用
Sub Application_End(ByVal sender As Object, ByVal e As EventArgs)
' アプリケーションの終了時に呼び出されます。
If Me.Response.Cookies.Count > 0 Then
For Each key In Me.Response.Cookies.AllKeys
If key.ToLower().Equals("asp.net_sessionid") Then
Me.Response.Cookies(key).Secure = True
End If
Next
End If
End Sub
補足:"ASP.NET_SessionId"について
* cookieNameの既定値は "ASP.NET_SessionId"であるため。以下参照。http://msdn.microsoft.com/ja-jp/library/h6bb9cz9%28v=vs.80%29.aspx
参考文献
http://aspnet.keicode.com/basic/ssl-secure-cookie.php[2] Web.config を利用
サンプル:Web.config
http://msdn.microsoft.com/ja-jp/library/ms228262.aspx* httpCookies 要素の「requireSSL="true"」にする(一番いいと思う)
<configuration>
<system.web>
<httpCookies requireSSL="true" />
</system.web>
</configuration>
サンプル:Web.config
http://msdn.microsoft.com/ja-jp/library/91ka2e6a.aspx* 「cookieRequireSSL="true"」にする
<configuration>
<system.web>
<anonymousIdentification
enabled="true"
cookieless="UseCookies"
cookieName=".ASPXANONYMOUS"
cookieTimeout="30"
cookiePath="/"
cookieRequireSSL="true"
cookieSlidingExpiration = "true"
cookieProtection="Clear"
/>
</system.web>
</configuration>
サンプル:Web.config
http://msdn.microsoft.com/ja-jp/library/1d3t3c61.aspxhttp://msdn.microsoft.com/ja-jp/library/ff648341.aspx
* 「requireSSL="true"」にする
<configuration>
<system.web>
<authentication mode="Forms">
<forms
name="401kApp"
loginUrl="/login.aspx"
requireSSL="true"
cookieless="AutoDetect"
defaultUrl="myCustomLogin.aspx">
<credentials passwordFormat = "SHA1">
<user name="UserName"
password="07B7F3EE06F278DB966BE960E7CBBD103DF30CA6"/>
</credentials>
</forms>
</authentication>
</system.web>
</configuration>
参考文献
http://msdn.microsoft.com/ja-jp/library/ms978378.aspxhttp://msdn.microsoft.com/ja-jp/library/ff648341.aspx