Share via


SignalR 持續連線的驗證和授權

作者: Patrick FletcherTom FitzMacken

警告

本檔不適用於最新版的 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; 
    } 
}

您可以在 AuthorizationRequest 方法中新增任何自訂的授權邏輯;例如,檢查使用者是否屬於特定角色。