SignalR 永続的接続の認証と承認Authentication and Authorization for SignalR Persistent Connections

によって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.

このトピックで使用されるソフトウェアのバージョンSoftware versions used in this topic

このトピックの以前のバージョンPrevious versions of this topic

SignalR の以前のバージョンについては、次を参照してください。以前のバージョンの SignalRします。For information about earlier versions of SignalR, see SignalR Older Versions.

意見やご質問Questions and comments

このチュートリアルの良い点に関するフィードバックや、ページ下部にあるコメントで改善できる点をお知らせください。Please leave feedback on how you liked this tutorial and what we could improve in the comments at the bottom of the page. チュートリアルに直接関係のない質問がある場合は、ASP.NET SignalR フォーラムまたはStackOverflow.comにて投稿してください。If you have questions that are not directly related to the tutorial, you can post them to the ASP.NET SignalR forum or

承認を適用します。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.