SignalR 영구 연결에 대한 인증 및 권한 부여

작성자: Patrick Fletcher, Tom FitzMacken

경고

이 설명서는 최신 버전의 SignalR용이 아닙니다. ASP.NET Core SignalR을 살펴보세요.

이 항목에서는 영구 연결에 권한 부여를 적용하는 방법을 설명합니다. Security를 SignalR 애플리케이션에 통합하는 방법에 대한 일반적인 내용은 보안 소개를 참조하세요.

이 항목에서 사용되는 소프트웨어 버전

이 항목의 이전 버전

이전 버전의 SignalR에 대한 자세한 내용은 SignalR 이전 버전을 참조하세요.

질문 및 의견

이 자습서를 어떻게 좋아했는지, 그리고 페이지 하단의 주석에서 개선할 수 있는 사항에 대한 피드백을 남겨 주세요. 자습서와 직접 관련이 없는 질문이 있는 경우 ASP.NET SignalR 포럼 또는 StackOverflow.com 게시할 수 있습니다.

권한 부여 적용

PersistentConnection을 사용할 때 권한 부여 규칙을 적용하려면 메서드를 재정의 AuthorizeRequest 해야 합니다. 영구 연결에는 Authorize 특성을 사용할 수 없습니다. 메서드는 AuthorizeRequest 사용자가 요청된 작업을 수행할 권한이 있는지 확인하기 위해 모든 요청 전에 SignalR Framework에 의해 호출됩니다. 메서드는 AuthorizeRequest 클라이언트에서 호출되지 않습니다. 대신 애플리케이션의 표준 인증 메커니즘을 통해 사용자를 인증합니다.

아래 예제에서는 인증된 사용자로 요청을 제한하는 방법을 보여 줍니다.

public class AuthenticatedConnection : PersistentConnection 
{ 
    protected override bool AuthorizeRequest(IRequest request) 
    { 
        return request.User.Identity.IsAuthenticated; 
    } 
}

AuthorizeRequest 메서드에서 사용자 지정된 권한 부여 논리를 추가할 수 있습니다. 예를 들어 사용자가 특정 역할에 속하는지 여부를 확인합니다.