在SignalR中實現身份驗證和授權通常涉及以下幾個步驟:
[Authorize]
public class MyHub : Hub
{
public void SendMessage(string message)
{
Clients.All.SendAsync("ReceiveMessage", message);
}
}
const connection = new signalR.HubConnectionBuilder()
.withUrl("/myHub", { accessTokenFactory: () => authToken })
.build();
public class MyAuthorization : AuthorizeAttribute
{
protected override bool UserAuthorized(IPrincipal user)
{
// Check user's identity and roles
return user.Identity.IsAuthenticated && user.IsInRole("Admin");
}
}
通過以上步驟,就可以在SignalR中實現身份驗證和授權功能。當用戶連接到SignalR Hub時,系統會驗證用戶的身份和權限,并根據權限決定是否允許用戶訪問Hub中的方法。這樣可以確保只有經過驗證的用戶才能進行實時通信,保證系統的安全性和可靠性。