我创建一个ASP.NET WebApi项目,它使用[Authorize]
属性来授权控制器,例如:
[System.Web.Http.Authorize(Roles="Users, Admins")]
public ValueController : ApiController
{
[HttpGet]
public string GetValue()
{
return "Hello World !";
}
}
现在我想将Signalr添加到该项目。这就是我所做的:
在App_Start / Startup.Auth.cs中,在ConfigureAuth()
函数中添加以下代码以启动SignalR。
app.Map(signalr, map =
{
map.UseCors(CorsOptions.AllowAll);
var hubConfiguration = new HubConfiguration
{
};
hubConfiguration.EnableDetailedErrors = true;
map.RunSignalR(hubConfiguration);
});
然后我添加一个MessageHub,试图允许授权用户向所有客户端发送消息:
[Microsoft.AspNet.SignalR.Authorize]
public class MessageHub : Hub
{
public void SendMessage(string message)
{
Clients.All.SendMessage(message);
}
}
如果我启动此项目,请在浏览器中输入http://localhost:4000/signalr/hubs,我会收到一个集线器js。
第一季度-对我来说,这意味着SignalR正在开发我的WebApi项目,对吗?
现在我需要测试SendMessage,首先要做的是通过http://localhost:4000/Token登录,然后获取一个access_token。在webApi中,我通常将此令牌放在Header中:
Authorization : Bearer access_token
访问API。
第二季度-现在我应该如何使用此令牌来访问MessageHub?