Skip to main content

Custom AuthorizationHandler for SignalR Hubs

How to implement IAuthorizationRequirement for SignalR in Asp.Net Core v5.0

Been battling this for a couple of days, and eventually ended up raising an issue on Asp.Net Core gitHub to find the answer.

Wanting to do some custom authorization on a SignalR Hub when the client makes a connection (Hub is created) and when an endpoint (Hub method) is called: 

I was assuming I could use the same Policy for both class & method attributes, but it ain't so - not because you can't, because you need the signatures to be different.

Method implementation has a resource type of HubInnovationContext:

I assumed class implementation would have a resource type of HubConnectionContext - client connects etc... This isn't the case, it's infact of type DefaultHttpContext. For me I don't even need that, it can be removed completely from the inheritence signature and override implementation.

Only other thing to note, and this could be a biggy, is the ordering of the statements in the Startup class:

Comments