{"id":1117,"date":"2014-02-03T02:40:07","date_gmt":"2014-02-03T02:40:07","guid":{"rendered":"http:\/\/blog.jaringanhosting.com\/?p=1117"},"modified":"2014-02-03T02:44:00","modified_gmt":"2014-02-03T02:44:00","slug":"asp-net-hosting-jaringanhosting-com-session-user-login-permanen-pada-asp-net","status":"publish","type":"post","link":"https:\/\/blog.jaringanhosting.com\/index.php\/asp-net-hosting-jaringanhosting-com-session-user-login-permanen-pada-asp-net\/","title":{"rendered":"ASP.NET Hosting &#8211; JaringanHosting.com :: Session User Login Permanen pada ASP.NET"},"content":{"rendered":"<p>Artikel ini menjelaskan cara membuat sebuah sesi login user tetap di <a title=\"ASP.NET Hosting - www.JaringanHosting.com\" href=\"http:\/\/jaringanhosting.com\/Indonesia-ASP-NET-35-Hosting\" target=\"_blank\">ASP.NET<\/a>.\u00a0Sebelum masuk ke kedalaman artikel ini, Anda harus terbiasa dengan bentuk otentikasi di ASP.NET. Konfigurasi bentuk otentikasi berada dalam file web.config yang memiliki fragmen konfigurasi file dengan nilai-nilai yang ditetapkan.<\/p>\n<pre style=\"font-family: arial; font-size: 12px; border: 1px dashed #CCCCCC; width: 99%; height: auto; overflow: auto; background: #f0f0f0; ;background-image: url('http:\/\/2.bp.blogspot.com\/_z5ltvMQPaa8\/SjJXr_U2YBI\/AAAAAAAAAAM\/46OqEP32CJ8\/s320\/codebg.gif'); padding: 0px; color: #000000; text-align: left; line-height: 20px;\"><code style=\"color: #000000; word-wrap: normal;\"> &lt;authentication mode=\"Forms\"&gt;  \r\n    &lt;forms loginUrl=\"~\/Account\/LogOn\"   \r\n        protection=\"All\"  \r\n        timeout=\"1\"  \r\n        name=\".USERLOGINCONTROLAUTH\"  \r\n        path=\"\/\"  \r\n        requireSSL=\"false\"  \r\n        slidingExpiration=\"true\"  \r\n        defaultUrl=\"~\/Home\/Index\"  \r\n        cookieless=\"UseDeviceProfile\"  \r\n        enableCrossAppRedirects=\"false\"\/&gt;&lt;\/authentication&gt;  \r\n<\/code><\/pre>\n<p>Nilai default dijelaskan sebagai berikut:<\/p>\n<p><a title=\"ASP.NET Hosting - www.JaringanHosting.com\" href=\"http:\/\/jaringanhosting.com\/Indonesia-ASP-NET-35-Hosting\" target=\"_blank\"><img loading=\"lazy\" class=\"size-full wp-image-1090 aligncenter\" alt=\"Banner\" src=\"http:\/\/blog.jaringanhosting.com\/wp-content\/uploads\/2014\/01\/Banner1.png\" width=\"302\" height=\"252\" srcset=\"https:\/\/blog.jaringanhosting.com\/wp-content\/uploads\/2014\/01\/Banner1.png 302w, https:\/\/blog.jaringanhosting.com\/wp-content\/uploads\/2014\/01\/Banner1-300x250.png 300w\" sizes=\"(max-width: 302px) 100vw, 302px\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">1. <strong>loginUrl<\/strong> : <em>point\u00a0<\/em>ke halaman logon kustom aplikasi Anda . Anda harus menempatkan halaman logon dalam folder yang memerlukan Secure Sockets Layer ( SSL ) . Ini akan membantu memastikan integritas kredensial ketika mereka lulus dari browser ke Web server .<\/p>\n<p style=\"text-align: justify;\">2.\u00a0<strong>protection<\/strong> :\u00a0diset ke All untuk menentukan privasi dan integritas untuk tiket bentuk <em>authentication<\/em>. Hal ini menyebabkan tiket <em>authentication\u00a0<\/em>yang akan dienkripsi menggunakan algoritma tertentu pada elemen machineKey \u00a0dan akan di<em>sign<\/em> menggunakan algoritma hashing yang juga ditentukan pada elemen machineKey .<\/p>\n<p style=\"text-align: justify;\">3.\u00a0<strong>timeout<\/strong> :\u00a0digunakan untuk menentukan seumur hidup terbatas untuk sesi otentikasi bentuk . Nilai default adalah 30 menit. Jika cookie <em>authentication<\/em>\u00a0dikeluarkan , atribut timeout juga digunakan untuk mengatur masa cookie persisten .<\/p>\n<p style=\"text-align: justify;\">4.\u00a0<strong>name dan path<\/strong> diatur ke nilai-nilai yang didefinisikan dalam file konfigurasi aplikasi .<\/p>\n<p style=\"text-align: justify;\">5.\u00a0<strong>requireSSL<\/strong> diatur ke false. Konfigurasi ini berarti bahwa cookies <em>authentication<\/em>\u00a0dapat ditransmisikan melalui saluran yang tidak terenkripsi SSL. Jika Anda khawatir tentang pembajakan sesi, Anda harus mempertimbangkan pengaturan requireSSL menjadi true.<\/p>\n<p style=\"text-align: justify;\">6. <strong>slidingExpiration<\/strong> diatur ke true untuk menegakkan <em>sliding session lifetime<\/em>. Ini berarti bahwa batas waktu sesi secara berkala ulang selama pengguna tetap aktif di situs.<\/p>\n<p style=\"text-align: justify;\">7. <strong>defaultUrl<\/strong> diatur ke halaman Default.aspx untuk aplikasi.<\/p>\n<p style=\"text-align: justify;\">8. <strong>cookieless<\/strong> diatur ke <em>UseDeviceProfile<\/em> untuk menentukan bahwa cookie penggunaan aplikasi untuk semua browser yang mendukung cookie. Jika browser yang tidak mendukung cookies mengakses situs, kemudian membentuk paket\u00a0<em>authentication\u00a0<\/em>tiket otentikasi pada URL.<\/p>\n<p style=\"text-align: justify;\">9. <strong>enableCrossAppRedirects<\/strong> diatur ke <em>false<\/em> untuk menunjukkan bahwa bentuk otentikasi tidak mendukung pemrosesan otomatis dari tiket yang lewat di antara aplikasi pada string atau sebagai bagian dari bentuk POST.<\/p>\n<p style=\"text-align: justify;\"><strong>FormsAuthentication.SetAuthCookie Method<\/strong><\/p>\n<p style=\"text-align: justify;\">Metode ini menciptakan tiket <em>authentication <\/em>untuk nama pengguna disediakan dan ditambahkan ke koleksi cookies respon, atau URL jika Anda menggunakan cookieless authentications. Overload pertama fungsi ini, memiliki dua parameter:<\/p>\n<ul style=\"text-align: justify;\">\n<li><span style=\"font-size: 13px;\">username: Nama pengguna dikonfirmasi\u00a0<\/span><\/li>\n<li><span style=\"font-size: 13px;\">createPersisntentCookie: True untuk membuat cookie yang tetap (disimpan di seluruh sesi browser), jika tidak, false.\u00a0<\/span><span style=\"font-size: 13px;\">Metode ini menambahkan cookie yang tetap untuk browser dengan berakhir waktu yang ditetapkan dalam parameter\u00a0&#8220;timeOut&#8221; dengan nama dan path diatur dalam &#8220;name&#8221; dan &#8220;path&#8221; parameter. Pengguna akan secara otomatis log out setelah <em>cookie expired<\/em>. Jadi sesi login pengguna tergantung pada berakhir bentuk tiket <em>authentication<\/em>\u00a0yang disimpan dalam cookie browser. Di sini, saya akan membuat sebuah sesi login pengguna tetap menggunakan teknik ini.<\/span><\/li>\n<\/ul>\n<p style=\"text-align: justify;\"><strong>Cookie Helper<\/strong><\/p>\n<p style=\"text-align: justify;\">Fungsi kelas ini adalah untuk menambah tiket bentuk <em>authentication\u00a0<\/em>untuk koleksi cookie browser dengan berakhirnya waktu.<\/p>\n<pre style=\"font-family: arial; font-size: 12px; border: 1px dashed #CCCCCC; width: 99%; height: auto; overflow: auto; background: #f0f0f0; ;background-image: url('http:\/\/2.bp.blogspot.com\/_z5ltvMQPaa8\/SjJXr_U2YBI\/AAAAAAAAAAM\/46OqEP32CJ8\/s320\/codebg.gif'); padding: 0px; color: #000000; text-align: left; line-height: 20px;\"><code style=\"color: #000000; word-wrap: normal;\"> public sealed class CookieHelper  \r\n {  \r\n   private HttpRequestBase _request;  \r\n   private HttpResponseBase _response;  \r\n   public CookieHelper(HttpRequestBase request,   \r\n      HttpResponseBase response)  \r\n      {  \r\n           _request = request;  \r\n           _response = response;  \r\n      }  \r\n   \/\/[DebuggerStepThrough()]  \r\n   public void SetLoginCookie(string userName,string password,bool isPermanentCookie)  \r\n   {  \r\n     if (_response != null)  \r\n     {  \r\n       if (isPermanentCookie)  \r\n       {  \r\n         FormsAuthenticationTicket userAuthTicket =   \r\n              new FormsAuthenticationTicket(1, userName, DateTime.Now,   \r\n              DateTime.MaxValue, true, password, FormsAuthentication.FormsCookiePath);  \r\n         string encUserAuthTicket = FormsAuthentication.Encrypt(userAuthTicket);  \r\n         HttpCookie userAuthCookie = new HttpCookie  \r\n              (FormsAuthentication.FormsCookieName, encUserAuthTicket);  \r\n         if (userAuthTicket.IsPersistent) userAuthCookie.Expires =   \r\n                               userAuthTicket.Expiration;  \r\n         userAuthCookie.Path = FormsAuthentication.FormsCookiePath;  \r\n         _response.Cookies.Add(userAuthCookie);  \r\n       }  \r\n       else  \r\n       {  \r\n         FormsAuthentication.SetAuthCookie(userName, isPermanentCookie);  \r\n       }  \r\n     }  \r\n   }  \r\n }  \r\n<\/code><\/pre>\n<p>Fungsi ini digunakan dalam halaman login atau kontrol pada klik tombol login. Fungsi berikut ini ditulis di kelas AccountController. Fungsi ini memvalidasi login pengguna dan kemudian menambahkan tiket <em>authentication<\/em>\u00a0bentuk permanen ke browser.<\/p>\n<pre style=\"font-family: arial; font-size: 12px; border: 1px dashed #CCCCCC; width: 99%; height: auto; overflow: auto; background: #f0f0f0; ;background-image: url('http:\/\/2.bp.blogspot.com\/_z5ltvMQPaa8\/SjJXr_U2YBI\/AAAAAAAAAAM\/46OqEP32CJ8\/s320\/codebg.gif'); padding: 0px; color: #000000; text-align: left; line-height: 20px;\"><code style=\"color: #000000; word-wrap: normal;\"> private bool Login(string userName, string password,bool rememberMe)  \r\n {  \r\n   if (Membership.ValidateUser(userName, password))  \r\n   {  \r\n     CookieHelper newCookieHelper =   \r\n           new CookieHelper(HttpContext.Request,HttpContext.Response);  \r\n     newCookieHelper.SetLoginCookie(userName, password, rememberMe);  \r\n     return true;  \r\n   }  \r\n   else  \r\n   {  \r\n     return false;  \r\n   }  \r\n }   \r\n<\/code><\/pre>\n<p>Jadi dengan cara ini, Anda dapat mengontrol tiket bentuk otentikasi untuk mengontrol sesi login pengguna.<\/p>\n<p><a title=\"ASP.NET Hosting - JaringanHosting.com\" href=\"http:\/\/www.jaringanhosting.com\"><strong>JaringanHosting.com<\/strong><\/a>\u00a0adalah provider\u00a0ASP.NET\u00a0dan Windows hosting No #1 di Indonesia sesuai dengan rekomendasi dari pihak Microsoft. <a href=\"http:\/\/www.microsoft.com\/web\/hosting\/HostingProvider\/Details\/950\">Microsoft memberikan rekomendasi<\/a> ini berdasarkan pada beberapa persyaratan utama, yaitu: WebMatrix, WebDeploy, Visual Studio 2012,ASP.NET 4.5,\u00a0ASP.NET\u00a0MVC 4.0, Silverlight 5 and Visual Studio Lightswitch.<a href=\"http:\/\/www.jaringanhosting.com\">Untuk keterangan lanjutan, silahkan klik disini!<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Artikel ini menjelaskan cara membuat sebuah sesi login user tetap di ASP.NET.\u00a0Sebelum masuk ke kedalaman artikel ini, Anda harus terbiasa dengan bentuk otentikasi di ASP.NET. Konfigurasi bentuk otentikasi berada dalam file web.config yang memiliki fragmen konfigurasi file dengan nilai-nilai yang<\/p>\n","protected":false},"author":2144,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[9,420,422,421],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/blog.jaringanhosting.com\/index.php\/wp-json\/wp\/v2\/posts\/1117"}],"collection":[{"href":"https:\/\/blog.jaringanhosting.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.jaringanhosting.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jaringanhosting.com\/index.php\/wp-json\/wp\/v2\/users\/2144"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jaringanhosting.com\/index.php\/wp-json\/wp\/v2\/comments?post=1117"}],"version-history":[{"count":0,"href":"https:\/\/blog.jaringanhosting.com\/index.php\/wp-json\/wp\/v2\/posts\/1117\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.jaringanhosting.com\/index.php\/wp-json\/wp\/v2\/media?parent=1117"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jaringanhosting.com\/index.php\/wp-json\/wp\/v2\/categories?post=1117"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jaringanhosting.com\/index.php\/wp-json\/wp\/v2\/tags?post=1117"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}