2012-07-29 3 views
2

나는 umbraco에서 ASP.NET 사이트를 개발 중이며 특정 ID를 가진 회원이 온라인 상태인지 확인해야합니다. 어떻게해야합니까? ASP.NET이 회원이 온라인 상태인지 확인하십시오.

지금까지, 나는 그렇게하여 회원을 얻기 위해 시도했다 :

Member m = new Member(myID); 

그러나 반환 된 멤버가 로그인하거나하지 않은 경우 어떻게 확인 할 수 있습니까?

편집 : 나는 링크를 따라하고, 그것에서 다음 코드를 추출 :

var users = Membership.GetAllUsers(); 

foreach(MembershipUser user in users){ 
    Response.Write(user.IsOnline.ToString() +"<br/>"); 
    Response.Write(user.LastActivityDate.ToString() + "<br/>"); 
    Response.Write(user.LastLoginDate.ToString() + "<br/>"); 
} 

그러나, 반환 된 결과가 속성 isOnline들이 온라인하지 않은 경우에도 모든 구성원에 대한 사실을 보여준다. 나는 그것이 LastActivityDate가 사용자에게 액세스 할 때마다 자동으로 업데이트된다는 사실을 알고 있습니다. 여기에 명시된 바와 같습니다 : Is it possible to access a profile without updating LastActivityDate?. 불행히도, 나는 그 문제에 대한 해결책을 얻지 못한다.

회원으로 액세스하려고 시도했습니다. MembershipUser m = Membership.GetUser ('myID', false); 하지만 두 번째 매개 변수로 false를 넣더라도 LastActivityDate는 여전히 업데이트됩니다. 이 문제를 어떻게 해결할 수 있습니까? 필자는 localhost에서 umbraco 4.7의 ASP.NET v. 4.0을 사용합니다.

감사합니다.

: 편집 END

안부, Brinck10

답변

3

당신은 현재 날짜와 시간을 뺀 UserIsOnlineTimeWindow 속성 값은 사용자의 lastActivityDate보다 이전 인 경우는 true 보여 MembershipUser.IsOnline Property를 사용할 수 있습니다.

MSDN page에 대한 예제가 있습니다. 상대

:
Proper 100% IsOnline implementation for asp.net membership
How to check in ASP.NET if the user is online?
asp.net custom membership provider: IsOnline property

+0

Aristos, 제 편집을 참조하십시오! –

+0

@FrederikBrinckJensen MSDN 페이지의 예제를 보면 온라인 상태의 모든 사용자를 찾고 원하는 것을 찾을 필요가 있습니다. (그리고 100 % 정확하지는 않습니다.) – Aristos

+0

죄송하지만, MSDN 페이지를 읽고 예제를 시도했지만, 아직 이해가되지 않습니다. 내 편집을 참조하십시오. –

0

문제에 대한 해결 방법

(1)는 I lastActivityDate라는 membertype에서 costum 필드를 만들었다.

(2) masterpage에 매크로를 배치하고 멤버의 lastActivityDate를 멤버가 온라인 상태 일 때의 현재 시간으로 업데이트합니다.

(3) 유효성 검사 페이지에서 lastActivityDate + CostumBuffer가 DateTime.Now보다 큰지 확인했습니다.

양해 해 주셔서 감사합니다. Aristos.

관련 문제