{"id":3482,"date":"2024-01-07T12:28:22","date_gmt":"2024-01-07T09:28:22","guid":{"rendered":"https:\/\/blog.inetmar.com\/?p=3482"},"modified":"2024-07-27T16:05:06","modified_gmt":"2024-07-27T13:05:06","slug":"asp-net-cookie-kullanimi","status":"publish","type":"post","link":"https:\/\/www.inetmar.com\/blog\/asp-net-cookie-kullanimi\/","title":{"rendered":"Asp.NET Cookie Kullan\u0131m\u0131"},"content":{"rendered":"\r\n<p>ASP.NET, web uygulamalar\u0131 geli\u015ftirmek i\u00e7in kullan\u0131lan pop\u00fcler bir framework&#8217;t\u00fcr. Bu framework, kullan\u0131c\u0131lar\u0131n web siteleriyle etkile\u015fimde bulunduklar\u0131 s\u00fcre boyunca kullan\u0131c\u0131 bilgilerini takip etmek i\u00e7in \u00e7e\u015fitli y\u00f6ntemler sunar. Bu y\u00f6ntemlerden biri de cookie kullan\u0131m\u0131d\u0131r. Bug\u00fcn sizlerle, ASP.NET framework&#8217;\u00fcndeki cookie kullan\u0131m\u0131n\u0131 daha ayr\u0131nt\u0131l\u0131 olarak inceleyece\u011fiz.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">Cookie Nedir?<\/h2>\r\n\r\n\r\n\r\n<p>Cookie, web sunucusu taraf\u0131ndan kullan\u0131c\u0131n\u0131n taray\u0131c\u0131s\u0131na g\u00f6nderilen ve kullan\u0131c\u0131n\u0131n web sitesiyle etkile\u015fimde bulundu\u011fu s\u00fcrece saklanan bir k\u00fc\u00e7\u00fck veri par\u00e7as\u0131d\u0131r. Cookie&#8217;ler, kullan\u0131c\u0131 kimlik do\u011frulamas\u0131, oturum y\u00f6netimi, tercihleri saklama gibi \u00e7e\u015fitli ama\u00e7larla kullan\u0131labilir. Her cookie, bir isim, bir de\u011fer ve di\u011fer iste\u011fe ba\u011fl\u0131 \u00f6zellikler i\u00e7erir.<\/p>\r\n\r\n\r\n\r\n<p>ASP.NET, cookie&#8217;leri y\u00f6netmek i\u00e7in bir dizi s\u0131n\u0131f ve y\u00f6ntem sa\u011flar. Bu s\u0131n\u0131flar ve y\u00f6ntemler, cookie&#8217;leri olu\u015fturmay\u0131, okumay\u0131, d\u00fczenlemeyi ve silmeyi kolayla\u015ft\u0131r\u0131r. Bunlar, geli\u015ftiricilere kullan\u0131c\u0131lar\u0131n \u00f6nbelle\u011finde bilgiler saklamalar\u0131n\u0131 ve kullan\u0131c\u0131 deneyimini \u00f6zelle\u015ftirmelerini sa\u011flar.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">ASP.NET Cookie Olu\u015fturma<\/h2>\r\n\r\n\r\n\r\n<p>ASP.NET, \u00e7erez olu\u015fturmak i\u00e7in System.Web namespace&#8217;indeki HttpCookie s\u0131n\u0131f\u0131n\u0131 kullan\u0131r. Bir \u00e7erez olu\u015fturmak i\u00e7in a\u015fa\u011f\u0131daki ad\u0131mlar\u0131 izleyebilirsiniz:<\/p>\r\n<ol>\r\n<li>\r\n<p>HttpCookie s\u0131n\u0131f\u0131n\u0131 kullanarak yeni bir \u00e7erez \u00f6rne\u011fi olu\u015fturun.<\/p>\r\n<\/li>\r\n<li>\r\n<p>\u00c7erezin ad\u0131n\u0131 ve de\u011ferini belirleyin.<\/p>\r\n<\/li>\r\n<li>\r\n<p>Gerekirse, \u00e7erezin s\u00fcresini ve di\u011fer \u00f6zelliklerini ayarlay\u0131n.<\/p>\r\n<\/li>\r\n<li>\r\n<p>Response.Cookies koleksiyonuna \u00e7erezi ekleyin.<\/p>\r\n<\/li>\r\n<\/ol>\r\n<p>A\u015fa\u011f\u0131da, bir ASP.NET sayfas\u0131nda \u00e7erez olu\u015fturman\u0131n basit bir \u00f6rne\u011fi verilmi\u015ftir:<\/p>\r\n<pre><code>\r\nHttpCookie cookie = new HttpCookie(\"KullaniciAdi\");\r\ncookie.Value = \"JohnDoe\";\r\ncookie.Expires = DateTime.Now.AddDays(7);\r\nResponse.Cookies.Add(cookie);<\/code><\/pre>\r\n<p>&nbsp;<\/p>\r\n<h2>\u00c7erezin S\u00fcresini Kontrol Etme<\/h2>\r\n<p>\u00c7erezlerin s\u00fcresini kontrol etmek i\u00e7in Expires \u00f6zelli\u011fini kullanabilirsiniz. Expires \u00f6zelli\u011fi, \u00e7erezin ne zaman sona erece\u011fini belirtir. A\u015fa\u011f\u0131daki \u00f6rnekte, \u00e7erezin s\u00fcresi kontrol edilmektedir:<\/p>\r\n<pre><code>\r\nHttpCookie cookie = Request.Cookies[\"KullaniciAdi\"];\r\nif (cookie != null)\r\n{\r\n    if (cookie.Expires &gt; DateTime.Now)\r\n    {\r\n        \/\/ \u00c7erez hala ge\u00e7erli\r\n    }\r\n    else\r\n    {\r\n        \/\/ \u00c7erez s\u00fcresi dolmu\u015f\r\n    }\r\n}<\/code><\/pre>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">\u00a0Cookie Okuma<\/h2>\r\n\r\n\r\n\r\n<p>Olu\u015fturulan bir cookie&#8217;yi okumak i\u00e7in, Request.Cookies koleksiyonunu kullanabilirsiniz. Bu koleksiyon, kullan\u0131c\u0131 taraf\u0131ndan g\u00f6nderilen cookie&#8217;leri i\u00e7erir. A\u015fa\u011f\u0131da, ASP.NET&#8217;te cookie okuman\u0131n basit bir \u00f6rne\u011fi bulunmaktad\u0131r:<code>string kullaniciAdi = Request.Cookies[\"KullaniciAdi\"].Value;<\/code><\/p>\r\n\r\n\r\n\r\n<p>Yukar\u0131daki \u00f6rnekte, &#8220;KullaniciAdi&#8221; ad\u0131ndaki cookie&#8217;nin de\u011feri kullaniciAdi de\u011fi\u015fkenine atan\u0131r. B\u00f6ylece, kullan\u0131c\u0131n\u0131n taray\u0131c\u0131s\u0131nda saklanan verilere eri\u015febilirsiniz.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">\u00a0Cookie D\u00fczenleme<\/h2>\r\n\r\n\r\n\r\n<p>Bir cookie&#8217;nin de\u011ferini veya di\u011fer \u00f6zelliklerini de\u011fi\u015ftirmek i\u00e7in, \u00f6ncelikle ilgili cookie&#8217;yi okuman\u0131z ve ard\u0131ndan de\u011fi\u015fiklikleri yapman\u0131z gerekir. A\u015fa\u011f\u0131da, ASP.NET&#8217;te cookie d\u00fczenlemenin basit bir \u00f6rne\u011fi bulunmaktad\u0131r:<code>if (Request.Cookies[\"KullaniciAdi\"] != null) { Response.Cookies[\"KullaniciAdi\"].Value = \"Faik\"; }<\/code><\/p>\r\n\r\n\r\n\r\n<p>Yukar\u0131daki \u00f6rnekte, &#8220;KullaniciAdi&#8221; ad\u0131ndaki cookie&#8217;nin de\u011feri &#8220;Faik&#8221; olarak de\u011fi\u015ftirilir. B\u00f6ylece, kullan\u0131c\u0131n\u0131n taray\u0131c\u0131s\u0131nda saklanan veri g\u00fcncellenir.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">\u00a0Cookie Silme<\/h2>\r\n\r\n\r\n\r\n<p>Bir cookie&#8217;yi silmek i\u00e7in, Response.Cookies koleksiyonundaki ilgili cookie&#8217;yi belirtmeniz ve Expires \u00f6zelli\u011fini ge\u00e7mi\u015f bir tarih olarak ayarlaman\u0131z yeterlidir. B\u00f6ylece, taray\u0131c\u0131 cookie&#8217;yi siler. A\u015fa\u011f\u0131da, ASP.NET&#8217;te cookie silmenin basit bir \u00f6rne\u011fi bulunmaktad\u0131r:<code>Response.Cookies[\"KullaniciAdi\"].Expires = DateTime.Now.AddDays(-1);<\/code><\/p>\r\n\r\n\r\n\r\n<p>Yukar\u0131daki \u00f6rnekte, &#8220;KullaniciAdi&#8221; ad\u0131ndaki cookie&#8217;nin s\u00fcresi ge\u00e7mi\u015f bir tarih olarak ayarlan\u0131r. B\u00f6ylece, taray\u0131c\u0131 cookie&#8217;yi siler ve kullan\u0131c\u0131 art\u0131k bu bilgiye eri\u015femez.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">ASP.NET Cookie Kullan\u0131m\u0131 \u0130pu\u00e7lar\u0131<\/h2>\r\n\r\n\r\n\r\n<p>ASP.NET&#8217;te cookie kullan\u0131rken dikkate alman\u0131z gereken baz\u0131 ipu\u00e7lar\u0131 vard\u0131r. \u0130\u015fte baz\u0131lar\u0131:<\/p>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\">1. Cookie&#8217;nin G\u00fcvenli\u011fi<\/h3>\r\n\r\n\r\n\r\n<p>Cookie&#8217;ler, kullan\u0131c\u0131 bilgilerini saklad\u0131\u011f\u0131ndan, g\u00fcvenlik \u00f6nlemleri almak \u00f6nemlidir. \u00d6zellikle kullan\u0131c\u0131 kimlik bilgileri gibi hassas verileri i\u00e7eren cookie&#8217;leri g\u00fcvence alt\u0131na almak i\u00e7in HTTPS kullanmay\u0131 d\u00fc\u015f\u00fcnmelisiniz. Bu, bilgilerin \u015fifrelenmesini sa\u011flar ve g\u00fcvenli bir ileti\u015fim kanal\u0131 sa\u011flar.<\/p>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\">2. Cookie&#8217;nin Boyutu<\/h3>\r\n\r\n\r\n\r\n<p>Cookie&#8217;ler kullan\u0131c\u0131n\u0131n taray\u0131c\u0131s\u0131nda saklan\u0131r ve her bir web iste\u011fiyle sunucuya g\u00f6nderilir. Bu nedenle, cookie&#8217;lerin boyutunu m\u00fcmk\u00fcn oldu\u011funca k\u00fc\u00e7\u00fck tutmak \u00f6nemlidir. B\u00fcy\u00fck boyutlu cookie&#8217;ler, a\u011f trafi\u011fini yava\u015flatabilir ve kullan\u0131c\u0131 deneyimini olumsuz etkileyebilir. Yaln\u0131zca ihtiyac\u0131n\u0131z olan verileri saklamaya \u00f6zen g\u00f6sterin.<\/p>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\">3. Cookie&#8217;nin S\u00fcresi<\/h3>\r\n\r\n\r\n\r\n<p>Cookie&#8217;lerin s\u00fcresini dikkatli bir \u015fekilde ayarlamak \u00f6nemlidir. Kullan\u0131c\u0131lar\u0131n tercihlerini hat\u0131rlamak veya oturum y\u00f6netimi i\u00e7in kullan\u0131lan s\u00fcrekli cookie&#8217;ler, kullan\u0131c\u0131lar taraf\u0131ndan silinmedi\u011fi s\u00fcrece devam eder. Ancak, baz\u0131 durumlarda ge\u00e7ici cookie&#8217;ler kullanmak daha iyidir. Bu t\u00fcr cookie&#8217;ler, taray\u0131c\u0131n\u0131n kapat\u0131lmas\u0131yla birlikte otomatik olarak silinir.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">\u00d6rnek Uygulama<\/h2>\r\n\r\n\r\n\r\n<p>ASP.NET&#8217;te cookie kullan\u0131m\u0131n\u0131 daha iyi anlamak i\u00e7in basit bir \u00f6rnek uygulama d\u00fc\u015f\u00fcnelim. Diyelim ki bir web sitesinde kullan\u0131c\u0131lar\u0131n tercihlerini kaydetmek istiyoruz. \u00d6rne\u011fin, kullan\u0131c\u0131n\u0131n dil tercihini saklamak i\u00e7in bir cookie kullanabiliriz. A\u015fa\u011f\u0131da, bu \u00f6rnek uygulama i\u00e7in bir kod par\u00e7as\u0131 bulunmaktad\u0131r:<code>protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { if (Request.Cookies[\"DilSecimi\"] != null) { string dil = Request.Cookies[\"DilSecimi\"].Value; DropDownList1.SelectedValue = dil; } } } protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) { string dil = DropDownList1.SelectedValue; Response.Cookies[\"DilSecimi\"].Value = dil; }<\/code><\/p>\r\n\r\n\r\n\r\n<p>Yukar\u0131daki \u00f6rnekte, &#8220;DilSecimi&#8221; ad\u0131nda bir cookie olu\u015fturuluyor ve kullan\u0131c\u0131n\u0131n se\u00e7ti\u011fi dil de\u011feri bu cookie&#8217;ye kaydediliyor. Ayr\u0131ca, sayfa y\u00fcklendi\u011finde cookie kontrol edilir ve dil se\u00e7imi, kullan\u0131c\u0131n\u0131n daha \u00f6nce yapt\u0131\u011f\u0131 bir tercih varsa otomatik olarak ayarlan\u0131r.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">S\u0131k\u00e7a Sorulan Sorular<\/h2>\r\n\r\n\r\n\r\n<h4 class=\"wp-block-heading\">1. ASP.NET Cookie&#8217;leri nas\u0131l g\u00fcvence alt\u0131na alabilirim?<\/h4>\r\n\r\n\r\n\r\n<p>ASP.NET Cookie&#8217;lerini g\u00fcvence alt\u0131na alman\u0131n en yayg\u0131n yolu, HTTPS kullanmakt\u0131r. HTTPS, verilerin \u015fifrelenmesini sa\u011flar ve kullan\u0131c\u0131 bilgilerinin g\u00fcvenli bir \u015fekilde iletilmesini sa\u011flar. Ayr\u0131ca, cookie&#8217;leri \u015fifrelemek veya do\u011frulamak i\u00e7in ASP.NET sunucusunda da belirli ayarlamalar yapabilirsiniz.<\/p>\r\n\r\n\r\n\r\n<h4 class=\"wp-block-heading\">2. Birden fazla cookie kullanman\u0131n avantajlar\u0131 nelerdir?<\/h4>\r\n\r\n\r\n\r\n<p>Birden fazla cookie kullanmak, kullan\u0131c\u0131 bilgilerini daha iyi organize etmenizi ve daha spesifik ama\u00e7lar i\u00e7in kullanman\u0131z\u0131 sa\u011flar. \u00d6rne\u011fin, bir cookie kullan\u0131c\u0131 kimlik bilgilerini saklamak i\u00e7in kullan\u0131l\u0131rken, ba\u015fka bir cookie tercihleri tutabilir. Bu, i\u015flevleri ve verileri daha iyi ay\u0131rmay\u0131 ve y\u00f6netmeyi kolayla\u015ft\u0131r\u0131r.<\/p>\r\n\r\n\r\n\r\n\r\n\r\n<h4>3. ASP.NET \u00e7erezlerinin maksimum boyutu nedir?<\/h4>\r\n<p><a href=\"https:\/\/www.inetmar.com\/hosting\/windows-hosting\/\" target=\"_blank\" rel=\"noopener\">ASP.NET<\/a> \u00e7erezlerinin maksimum boyutu 4 KB&#8217;d\u0131r. Bu boyutu a\u015fan bir \u00e7erez olu\u015fturuldu\u011funda, \u00e7erez otomatik olarak kesilir.<\/p>\r\n\r\n\r\n\r\n<p style=\"text-align: center;\">Uygulamalar\u0131n\u0131z i\u00e7in optimize <a class=\"waffle-rich-text-link\" href=\"https:\/\/www.inetmar.com\/sunucu\/vds-cloud-server\/\">VDS sunucu<\/a> paketlerimiz.<\/p>","protected":false},"excerpt":{"rendered":"<p>ASP.NET, web uygulamalar\u0131 geli\u015ftirmek i\u00e7in kullan\u0131lan pop\u00fcler bir framework&#8217;t\u00fcr. Bu framework, kullan\u0131c\u0131lar\u0131n web siteleriyle etkile\u015fimde bulunduklar\u0131 s\u00fcre boyunca kullan\u0131c\u0131 bilgilerini takip etmek i\u00e7in \u00e7e\u015fitli y\u00f6ntemler sunar. Bu y\u00f6ntemlerden biri de cookie kullan\u0131m\u0131d\u0131r. Bug\u00fcn sizlerle, ASP.NET&#46;&#46;&#46;<\/p>\n","protected":false},"author":2,"featured_media":4529,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17],"tags":[],"class_list":["post-3482","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-asp-bilesenleri"],"_links":{"self":[{"href":"https:\/\/www.inetmar.com\/blog\/wp-json\/wp\/v2\/posts\/3482","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.inetmar.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.inetmar.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.inetmar.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.inetmar.com\/blog\/wp-json\/wp\/v2\/comments?post=3482"}],"version-history":[{"count":9,"href":"https:\/\/www.inetmar.com\/blog\/wp-json\/wp\/v2\/posts\/3482\/revisions"}],"predecessor-version":[{"id":9496,"href":"https:\/\/www.inetmar.com\/blog\/wp-json\/wp\/v2\/posts\/3482\/revisions\/9496"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.inetmar.com\/blog\/wp-json\/wp\/v2\/media\/4529"}],"wp:attachment":[{"href":"https:\/\/www.inetmar.com\/blog\/wp-json\/wp\/v2\/media?parent=3482"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.inetmar.com\/blog\/wp-json\/wp\/v2\/categories?post=3482"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.inetmar.com\/blog\/wp-json\/wp\/v2\/tags?post=3482"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}