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

投稿者: パトリック・フレッチャートム・フィッツマッケン

Warnung

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

このトピックでは、永続的な接続に承認を適用する方法について説明します。 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 メソッドでは、カスタマイズされた承認ロジックを追加できます。たとえば、ユーザーが特定のロールに属しているかどうかを確認します。