2013-04-19 2 views
2

사용자가 허브에 로그온되어 있는지 확인하는 방법이 있습니까?.net 사용자가 로그인했는지 확인하십시오.

HttpContext.Current.User.Identity.IsAuthenticated 

년 - 문제는 내가 사용자의 무리에 데이터를 전송하고 클라이언트 중 하나가 비활성 상태임을 가정하고있어 점이다

나는 그러나 HttpContext를 허브에 사용할 수없는, 내가 이것을 사용할 수 있습니다 알고 그/그녀의 세션이 만료됩니다.

내가하고 싶은 것은 내 허브 => Send() 메소드 (이벤트에서 호출 됨)에서 사용자가 아직 로그인되어 있는지 확인하고, 로그인하지 않았다면 브라우저에 메시지를 보냅니다. 페이지를 다시로드하십시오.

+0

사용하여 확인할 수 있습니다; 'Context.User.Identity.IsAuthenticated'. 도움이 될 수 있습니다. –

+0

그래서 HttpContext.Current.User.Identity가 hub 외부의 signalR과 함께 작동합니까? 나는 내 일을 할 수 없다. SignalR을 사용할 때 HttpContext.Current.User가 null입니다. – eaglei22

답변

2

authenitcated 사용자가 허브에 연결/전송할 수있게하려면 허브의 Authorize 속성을 사용할 수 있습니다. 현재 사용자를 얻으려면 Context.User에 액세스하면됩니다 (허브에서 사용할 수있는 속성).

1

이 같은 허브 클래스의 방법이 있습니다 Context.User.Identity.IsAuthenticated

public class Chat : Hub 
{ 
    public void send(string message) 
    { 
     Clients.addMessage(message); 
    } 

    public void securesend(string message) 
    { 
     if (this.Context.User.Identity.IsAuthenticated) 
     { 
      // secure send. 
     } 
    } 
} 

reference

관련 문제