共用方式為


SignalR 持續連線的驗證與授權 (SignalR 1.x)

作者: Patrick FletcherTom FitzMacken

警告

本檔不適用於最新版的 SignalR。 請查看ASP.NET Core SignalR

本主題描述如何在永續性連線上強制執行授權。 如需將安全性整合到 SignalR 應用程式的一般資訊,請參閱 安全性簡介

強制執行授權

若要在使用 PersistentConnection 時強制執行授權規則,您必須覆寫 AuthorizeRequest 方法。 您無法搭配持續性連接使用 Authorize 屬性。 AuthorizeRequest在每次要求之前,SignalR Framework 都會呼叫 方法,以確認使用者有權執行要求的動作。 方法 AuthorizeRequest 不會從用戶端呼叫;相反地,您會透過應用程式的標準驗證機制來驗證使用者。

下列範例示範如何限制對已驗證使用者的要求。

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

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