SignalR 持續連線的驗證與授權 (SignalR 1.x)
作者: Patrick Fletcher、 Tom 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 方法中新增任何自訂的授權邏輯;例如,檢查使用者是否屬於特定角色。