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