2011-12-31 5 views
1

나는 독자적인 시스템을 사용하여 사용자 인증을 처리하고 있으며 데이터베이스는 mysql에서 관리됩니다. 이제내 응용 프로그램에서 온라인 사용자 수는 어떻게 계산합니까?

, 내가 원하는

System.Web.Security.Membership.GetNumberOfUsersOnline() 

처럼 뭔가 내가 MySQL을 사용, 사용자의 수를 얻을 수있는 방법을 알고 참조하십시오. web.config에서 모든 테이블이 생성 된 데이터베이스를 설정했지만이 미리 정의 된 함수를 호출 할 때 여전히 0이 표시됩니다.

이제는 역할을 유지하는 mysql에 별도의 데이터베이스가 있습니다. 그들은 테이블을 생성했기 때문에 작동합니다. 이제는 익명을 포함하여 모든 사용자의 수를 어떻게 얻을 수 있는지 알고 싶습니다.

+2

web.Config 파일에 멤버 자격 공급자를 설정 했습니까? –

+0

"사용자 인증을 처리하기 위해 자체 시스템을 사용하고 있습니다."- Custom MembershipProvider를 의미합니까? –

답변

6

당신은 당신의 Global.asax이 추가 시도 할 수 있습니다 : 여기 그것을 발견

void Application_Start(object sender, EventArgs e) { 
    Application["OnlineUsers"] = 0; 
} 

void Session_Start(object sender, EventArgs e) { 
    Application.Lock(); 
    Application["OnlineUsers"] = (int)Application["OnlineUsers"] + 1; 
    Application.UnLock(); 
} 

void Session_End(object sender, EventArgs e) { 
    Application.Lock(); 
    Application["OnlineUsers"] = (int)Application["OnlineUsers"] - 1; 
    Application.UnLock(); 
} 

:

http://aspdotnetfaq.com/Faq/How-to-show-number-of-online-users-visitors-for-ASP-NET-website.aspx

이 기본적으로 알려줍니다 많은 세션에 관계없이 응용 프로그램에서 현재 활성 방법 사용자가 로그인했는지 여부를 정확하게 수정할 수 있습니다. 어떤 사용자가 로그인했는지에 대한 세부 정보를 포함하여이 정보를 수정하여 멤버십에 사용하는 시스템과는 독립적입니다.

1

자신 만의 '시스템'을 작성하여 인증을 처리 한 경우 MembershipProvider 정의 된 방법을 활용하려면 고유 한 멤버 자격 공급자를 작성해야합니다.

다음은 MSDN에서 나만의 의료기관을 만드는 방법에 대한 개요입니다.

한 마디주의 - 구현해야하는 메소드의 수는 꽤 많습니다 (일부는 상당히 쓸모가 없습니다. IMHO). 저는 몇 년 동안 약간의 글을 썼습니다. 보통은 많은 메소드를 사용하지 않으므로, 아무것도하지 않는 몇 가지 "NotImplemented"메소드가 생깁니다. 이 길로 가면 회원 등급에 혼란이 생길 ​​수 있습니다.

희망이 도움이됩니다. 행운을 빕니다!

관련 문제