private Session GetSession(AuthorizationContext authorizationContext) { lock (_sessions) { var sessionKey = authorizationContext.ToString(); if (!_sessions.TryGetValue(sessionKey, out var session)) { throw new SessionNotFoundException(sessionKey); } return(session); } }
public static string ToReason(this AuthorizationContext value, bool isAuthorized) { // // MUST return null and NOT empty string as the result is used as TargetNullValue in bindings! // if (isAuthorized) { return(null); } var field = value.GetType().GetField(value.ToString()); var attribute = Attribute.GetCustomAttribute(field, typeof(ReasonAttribute)) as ReasonAttribute; return(String.IsNullOrEmpty(attribute?.Reason) ? null : attribute.Reason); }
private async Task RunSessionAsync(ConnectorChannel channel, AuthorizationContext authorizationContext, CancellationToken cancellationToken) { var sessionKey = authorizationContext.ToString(); try { var session = new Session(channel, authorizationContext, _logger); lock (_sessions) { _sessions[sessionKey] = session; } await session.ListenAsync(cancellationToken).ConfigureAwait(false); } finally { lock (_sessions) { _sessions.Remove(sessionKey); } } }
public void OnAuthorization(AuthorizationContext filterContext) { LogManager.AutherizationLog("On Autherization", filterContext.ToString()); }