캐시를 사용하여 사용자가 로그인했는지 여부를 확인할 수 있다는 것을 인터넷에서 보았는데 꽤 좋은 것 같습니다. 실험 후
여기에 공유된 코드 원칙은 비교적 간단합니다.
지정된 고객 로그인 문자열이 이미 캐시에 있는지 확인합니다. 그렇지 않은 경우 이를 추가하고 캐시에 저장 시간을 지정합니다. 반복적으로 로그인하는 경우, 캐시 값이 비어 있는지 판단하여 사용자가 반복적으로 로그인했는지 여부를 판단할 수 있습니다.
//키 생성
문자열 sKey = TextBox1.Text + "_IsLogin";
//캐시에서 주어진 키의 값을 가져옵니다.
string sUser = Convert.ToString(Cache[sKey]);
//존재하는지 확인
if (sUser == null || sUser == String.Empty)
{
//캐시에 이 키에 대한 항목이 없습니다. 이는 사용자가 로그인하지 않았거나 로그인 시간이 초과되었음을 나타냅니다.
//TimeSpan은 시간 간격을 나타내며 세션 시간 초과에 대한 시스템 설정 값을 가져옵니다.
//TimeSpan SessTimeOut = new TimeSpan(0, 0, System.Web.HttpContext.Current.Session.Timeout, 0, 0);
//(사용자가 다시 로그인할 때까지 허용되는 시간이 세션 제한 시간보다 짧다고 판단되면 이 값을 더 작게 설정할 수 있습니다. 이 예시에서는 1분으로 설정합니다.)
TimeSpan SessTimeOut = new TimeSpan(0, 0, 1, 0, 0);
HttpContext.Current.Cache.Insert(sKey, sKey, null, DateTime.MaxValue, SessTimeOut,
System.Web.Caching.CacheItemPriority.NotRemovable, null);
//최초 로그인 후 하고 싶은 작업을 하실 수 있습니다.
Label1.Text = "안녕하세요! 환영합니다";
}
또 다른
{
//Cache에 해당 사용자의 기록이 있습니다. 해당 테이블 이름은 이미 로그인되어 있습니다. 다시 로그인할 수 없습니다.
Label1.Text = "죄송합니다. 다른 곳에 로그인하셨습니다. 아니면 1분 후에 다시 시도하십시오.";
반품;
}
http://www.cnblogs.com/heekui/archive/2006/12/14/591691.html