ASP.NET Logo

ASP.NET Logo

 

Menangani multiple login pada ASP.NET dapat dilakukan dengan banyak cara, akan tetapi untuk tulisan ini akan dijelaskan memanfaatkan fitur cache yang ada di ASP.NET.

 

Pada umumnya, autentikasi user/pengguna memakai fitur Session, akan tetapi session tersebut tidak bisa diakses jika di device/browser yang berbeda. Hal ini yang memungkinkan pengguna dapat login/masuk menggunakan user yang sama. Pada beberapa kebijakan pada pemilik website, administrator menginginkan agar pengguna tidak dapat login di banyak device/browser secara bersamaan.

 

Cara menanganinya dengan menambahkan kode berikut sesaat setelah user berhasil login menggunakan user dan password yang benar.

 

VB

Dim sKey As String = txtUserName.Text

Dim sUser As String = Convert.ToString(Cache(sKey))

If sUser = "" Then

Dim SessTimeOut As New TimeSpan(0, 0, HttpContext.Current.Session.Timeout, 0, 0)

HttpRuntime.Cache.Insert(sKey, sKey, Nothing, DateTime.MaxValue, SessTimeOut, System.Web.Caching.CacheItemPriority.NotRemovable, Nothing)

Else

ErrorMsg.Text = "Users have logged in in the other device. Please logout first."

Exit Sub

End If

 

C#

string sKey = txtUserName.Text;

string sUser = Convert.ToString(Cache[sKey]);

if (string.IsNullOrEmpty(sUser)) {

TimeSpan SessTimeOut = new TimeSpan(0, 0, HttpContext.Current.Session.Timeout, 0, 0);

HttpRuntime.Cache.Insert(sKey, sKey, null, DateTime.MaxValue, SessTimeOut, System.Web.Caching.CacheItemPriority.NotRemovable, null);

} else {

ErrorMsg.Text = "Users have logged in in the other device. Please logout first.";

return;

}

 

Setelah menyimpan data tersebut di cache, selain akan terhapus secara otomatis ketika timeout, juga bisa dihapus secara manual dengan menambahkan kode berikut di awal baris action logout yang dibuat:

 

VB

HttpRuntime.Cache.Remove(Session("UserName").ToString.Trim)

 

C#

HttpRuntime.Cache.Remove(Session["UserId"].ToString.Trim);

 

Demikian tutorial bagaimana menangani multiple login pada ASP.NET, untuk lebih mengenal apa itu cache, session silakan mengakses link berikut ini :

 

 

 

 

(HMS)