private InvocationDetails GetInvocationOptions(IWampCaller caller, CallOptions options, string procedureUri) { IWampClientProxy wampCaller = caller as IWampClientProxy; InvocationDetailsExtended result = new InvocationDetailsExtended { CallerSession = wampCaller.Session, CallerOptions = options, ProcedureUri = procedureUri }; WelcomeDetails welcomeDetails = wampCaller.WelcomeDetails; result.AuthenticationId = welcomeDetails.AuthenticationId; result.AuthenticationRole = welcomeDetails.AuthenticationRole; return(result); }
private InvocationDetails GetInvocationDetails(InvocationDetails details) { InvocationDetailsExtended casted = details as InvocationDetailsExtended; if (casted == null) { return(details); } InvocationDetails result = new InvocationDetails(casted); CallOptions callerOptions = casted.CallerOptions; if (Options.DiscloseCaller == true && callerOptions.DiscloseMe == false) { throw new WampException(WampErrors.DiscloseMeNotAllowed); } if (Options.DiscloseCaller == true || callerOptions.DiscloseMe == true) { result.Caller = casted.CallerSession; result.AuthenticationId = casted.AuthenticationId; result.AuthenticationMethod = casted.AuthenticationMethod; result.AuthenticationRole = casted.AuthenticationRole; } if (callerOptions.ReceiveProgress == true) { result.ReceiveProgress = true; } if (Options.Match != WampMatchPattern.Exact) { result.Procedure = casted.ProcedureUri; } return(result); }