SignalR 永続的接続の認証と承認

作成者: Patrick FletcherTom FitzMacken

警告

このドキュメントは、最新版の SignalR に対するものではありません。 ASP.NET Core SignalR に関する記事を参照してください。

このトピックでは、永続的な接続に認可を適用する方法について説明します。 SignalR アプリケーションにセキュリティを統合する方法に関する一般的な情報については、「セキュリティ入門」を参照してください。

このトピックで使用されるソフトウェアのバージョン

このトピックの以前のバージョン

SignalR の以前のバージョンの詳細については、「SignalR の以前のバージョン」を参照してください。

質問とコメント

このチュートリアルの感想、改善に関するフィードバックをページの下部にあるコメント欄にお寄せください。 チュートリアルに直接関連しない質問がある場合は、ASP.NET SignalR フォーラムまたは StackOverflow.com に投稿できます。

認可を適用する

PersistentConnection を使用する際に認可規則を適用するには、AuthorizeRequest メソッドをオーバーライドする必要があります。 永続的な接続では、Authorize 属性を使用できません。 AuthorizeRequest メソッドは、ユーザーが要求されたアクションの実行を許可されているかを確認するために、すべての要求の前に SignalR フレームワークによって呼び出されます。 AuthorizeRequest メソッドはクライアントから呼び出されません。代わりに、アプリケーションの標準認証メカニズムを使用してユーザーを認証します。

次の例は、認証されたユーザーに要求を制限する方法を示しています。

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

AuthorizeRequest メソッドには、ユーザーが特定のロールに属しているかどうかをチェックするなど、カスタマイズした認可ロジックを追加できます。