SignalR 永続的接続の認証と承認 (SignalR 1.x)Authentication and Authorization for SignalR Persistent Connections (SignalR 1.x)

によってPatrick FletcherTom FitzMackenby Patrick Fletcher, Tom FitzMacken


このドキュメントは SignalR の最新バージョンはありません。This documentation isn't for the latest version of SignalR. 見てASP.NET Core SignalRします。Take a look at ASP.NET Core SignalR.

このトピックでは、永続的な接続の承認を適用する方法を説明します。This topic describes how to enforce authorization on a persistent connection. SignalR アプリケーションへのセキュリティの統合の詳細については、次を参照してください。セキュリティの概要します。For general information about integrating security into a SignalR application, see Introduction to Security.

承認を適用します。Enforce authorization

使用する場合は、承認規則を適用する、 PersistentConnectionオーバーライドする必要があります、AuthorizeRequestメソッド。To enforce authorization rules when using a PersistentConnection you must override the AuthorizeRequest method. 使用することはできません、Authorize永続的な接続を持つ属性です。You cannot use the Authorize attribute with persistent connections. AuthorizeRequestメソッドは要求ごとに、要求された操作を実行するユーザーが許可されていることを確認する前に SignalR フレームワークによって呼び出されます。The AuthorizeRequest method is called by the SignalR Framework before every request to verify that the user is authorized to perform the requested action. AuthorizeRequestメソッドは、クライアントからは呼び出されません。 代わりに、アプリケーションの標準的な認証メカニズムを通じてユーザーを認証します。The AuthorizeRequest method is not called from the client; instead, you authenticate the user through your application's standard authentication mechanism.

次の例では、認証されたユーザーへの要求に制限する方法を示します。The example below shows how to limit requests to authenticated users.

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

AuthorizeRequest メソッドで、カスタマイズされた承認ロジックを追加することができます。次のように、ユーザーが特定のロールに属しているかどうかを確認しています。You can add any customized authorization logic in the AuthorizeRequest method; such as, checking whether a user belongs to a particular role.