#if !BESTHTTP_DISABLE_SIGNALR namespace BestHTTP.SignalR.Authentication { public delegate void OnAuthenticationSuccededDelegate(IAuthenticationProvider provider); public delegate void OnAuthenticationFailedDelegate(IAuthenticationProvider provider, string reason); public interface IAuthenticationProvider { /// /// The authentication must be run before any request made to build up the SignalR protocol /// bool IsPreAuthRequired { get; } /// /// This event must be called when the pre-authentication succeded. When IsPreAuthRequired is false, no-one will subscribe to this event. /// event OnAuthenticationSuccededDelegate OnAuthenticationSucceded; /// /// This event must be called when the pre-authentication failed. When IsPreAuthRequired is false, no-one will subscribe to this event. /// event OnAuthenticationFailedDelegate OnAuthenticationFailed; /// /// This function called once, when the before the SignalR negotiation begins. If IsPreAuthRequired is false, then this step will be skipped. /// void StartAuthentication(); /// /// This function will be called for every request before sending it. /// void PrepareRequest(HTTPRequest request, RequestTypes type); } } #endif