// Token: 0x06000310 RID: 784 RVA: 0x000132E8 File Offset: 0x000114E8 private static RfriContext CreateRfriContext(ClientBinding clientBinding) { RfriContext rfriContext = null; using (DisposeGuard disposeGuard = default(DisposeGuard)) { ClientSecurityContext clientSecurityContext = null; bool isAnonymous = false; string text = null; string userDomain = null; RpcHttpConnectionProperties rpcHttpConnectionProperties = null; if (!RpcDispatch.TryGetAuthContextInfo(clientBinding, out clientSecurityContext, out isAnonymous, out text, out userDomain, out rpcHttpConnectionProperties)) { ExTraceGlobals.ReferralTracer.TraceError <Guid>(0L, "Could not resolve anonymous user for session id: {0}", clientBinding.AssociationGuid); throw new RfriException(RfriStatus.LogonFailed, "Could not resolve anonymous user."); } disposeGuard.Add <ClientSecurityContext>(clientSecurityContext); Guid empty = Guid.Empty; if (rpcHttpConnectionProperties != null && rpcHttpConnectionProperties.RequestIds.Length > 0) { Guid.TryParse(rpcHttpConnectionProperties.RequestIds[rpcHttpConnectionProperties.RequestIds.Length - 1], out empty); } rfriContext = new RfriContext(clientSecurityContext, userDomain, clientBinding.ClientAddress, clientBinding.ServerAddress, clientBinding.ProtocolSequence, clientBinding.AuthenticationType.ToString(), clientBinding.IsEncrypted, isAnonymous, empty); disposeGuard.Add <RfriContext>(rfriContext); if (!rfriContext.TryAcquireBudget()) { ExTraceGlobals.ReferralTracer.TraceError((long)rfriContext.ContextHandle, "Could not acquire budget"); throw new RfriException(RfriStatus.GeneralFailure, "Failed to acquire budget."); } disposeGuard.Success(); } return(rfriContext); }
internal static NspiContext CreateContext(ClientBinding clientBinding) { NspiContext result; using (DisposeGuard disposeGuard = default(DisposeGuard)) { ClientSecurityContext clientSecurityContext = null; bool isAnonymous = false; string text = null; string userDomain = null; RpcHttpConnectionProperties rpcHttpConnectionProperties = null; if (!RpcDispatch.TryGetAuthContextInfo(clientBinding, out clientSecurityContext, out isAnonymous, out text, out userDomain, out rpcHttpConnectionProperties)) { ExTraceGlobals.NspiTracer.TraceError <Guid>(0L, "Could not resolve anonymous user for session id: {0}", clientBinding.AssociationGuid); throw new NspiException(NspiStatus.LogonFailed, "Could not resolve anonymous user."); } disposeGuard.Add <ClientSecurityContext>(clientSecurityContext); Guid empty = Guid.Empty; if (rpcHttpConnectionProperties != null && rpcHttpConnectionProperties.RequestIds.Length > 0) { Guid.TryParse(rpcHttpConnectionProperties.RequestIds[rpcHttpConnectionProperties.RequestIds.Length - 1], out empty); } NspiContext nspiContext = new NspiContext(clientSecurityContext, userDomain, clientBinding.ClientAddress, clientBinding.ServerAddress, clientBinding.ProtocolSequence, empty); disposeGuard.Add <NspiContext>(nspiContext); nspiContext.IsAnonymous = isAnonymous; if (!nspiContext.TryAcquireBudget()) { ExTraceGlobals.NspiTracer.TraceError((long)nspiContext.ContextHandle, "Could not acquire budget"); throw new NspiException(NspiStatus.GeneralFailure, "Failed to acquire budget."); } bool flag = false; lock (ClientContextCache.clientContextDictionaryLock) { flag = ClientContextCache.clientContextDictionary.ContainsKey(nspiContext.ContextHandle); if (!flag) { ClientContextCache.clientContextDictionary.Add(nspiContext.ContextHandle, nspiContext); AddressBookPerformanceCountersWrapper.AddressBookPerformanceCounters.NspiConnectionsCurrent.RawValue = (long)ClientContextCache.clientContextDictionary.Count; AddressBookPerformanceCountersWrapper.AddressBookPerformanceCounters.NspiConnectionsTotal.Increment(); AddressBookPerformanceCountersWrapper.AddressBookPerformanceCounters.NspiConnectionsRate.Increment(); } } if (flag) { ExTraceGlobals.NspiTracer.TraceError((long)nspiContext.ContextHandle, "Duplicate contextHandle found in context dictionary"); throw new NspiException(NspiStatus.GeneralFailure, "Duplicate contextHandle found in context dictionary."); } disposeGuard.Success(); result = nspiContext; } return(result); }
public RfriGetFQDNFromLegacyDNDispatchTask(CancelableAsyncCallback asyncCallback, object asyncState, ProtocolRequestInfo protocolRequestInfo, ClientBinding clientBinding, RfriContext context, RfriGetFQDNFromLegacyDNFlags flags, string serverDn) : base(asyncCallback, asyncState, protocolRequestInfo, clientBinding, context) { this.flags = flags; this.serverDn = serverDn; }
// Token: 0x0600009C RID: 156 RVA: 0x000045E1 File Offset: 0x000027E1 public NspiBindDispatchTask(CancelableAsyncCallback asyncCallback, object asyncState, ProtocolRequestInfo protocolRequestInfo, ClientBinding clientBinding, NspiContext context, NspiBindFlags flags, NspiState state, Guid?serverGuid) : base(asyncCallback, asyncState, protocolRequestInfo, context, state) { this.clientBinding = clientBinding; this.flags = flags; this.serverGuid = serverGuid; }
public RfriGetMailboxUrlDispatchTask(CancelableAsyncCallback asyncCallback, object asyncState, ProtocolRequestInfo protocolRequestInfo, ClientBinding clientBinding, RfriContext context, RfriGetMailboxUrlFlags flags, string hostname, string serverDn) : base(asyncCallback, asyncState, protocolRequestInfo, clientBinding, context) { this.flags = flags; this.hostname = hostname; this.serverDn = serverDn; }
// Token: 0x0600030B RID: 779 RVA: 0x00013198 File Offset: 0x00011398 public ICancelableAsyncResult BeginGetMailboxUrl(ProtocolRequestInfo protocolRequestInfo, ClientBinding clientBinding, RfriGetMailboxUrlFlags flags, string hostname, string serverDn, CancelableAsyncCallback asyncCallback, object asyncState) { return(this.BeginWrapper("BeginGetMailboxUrl", asyncCallback, asyncState, clientBinding, serverDn, (RfriContext context) => new RfriGetMailboxUrlDispatchTask(asyncCallback, asyncState, protocolRequestInfo, clientBinding, context, flags, hostname, serverDn))); }
// Token: 0x06000307 RID: 775 RVA: 0x00012F50 File Offset: 0x00011150 public ICancelableAsyncResult BeginGetFQDNFromLegacyDN(ProtocolRequestInfo protocolRequestInfo, ClientBinding clientBinding, RfriGetFQDNFromLegacyDNFlags flags, string serverDn, CancelableAsyncCallback asyncCallback, object asyncState) { return(this.BeginWrapper("BeginGetFQDNFromLegacyDN", asyncCallback, asyncState, clientBinding, serverDn, (RfriContext context) => new RfriGetFQDNFromLegacyDNDispatchTask(asyncCallback, asyncState, protocolRequestInfo, clientBinding, context, flags, serverDn))); }
// Token: 0x06000313 RID: 787 RVA: 0x0001366C File Offset: 0x0001186C private ICancelableAsyncResult BeginWrapper(string methodName, CancelableAsyncCallback asyncCallback, object asyncState, ClientBinding clientBinding, string legacyDn, Func <RfriContext, RfriDispatchTask> beginDelegate) { ICancelableAsyncResult asyncResult = null; RfriAsyncDispatch.ConditionalExceptionWrapper(ExTraceGlobals.ReferralTracer.IsTraceEnabled(TraceType.DebugTrace), delegate { if (ExTraceGlobals.ReferralTracer.IsTraceEnabled(TraceType.DebugTrace)) { using (ClientSecurityContext clientSecurityContext = clientBinding.GetClientSecurityContext()) { ExTraceGlobals.ReferralTracer.TraceDebug(0, 0L, "{0} started. LegacyDn={1}. ClientAddress={2}. ServerAddress={3}. ProtocolSequence={4}. EndPoint={5}. IsEncrypted={6}. ClientSecurityContext={7}.", new object[] { methodName, legacyDn, clientBinding.ClientAddress, clientBinding.ServerAddress, clientBinding.ProtocolSequence, clientBinding.ClientEndpoint, clientBinding.IsEncrypted, clientSecurityContext }); } } FailureAsyncResult <RfriStatus> failureAsyncResult = null; this.CheckShuttingDown(); try { using (DisposeGuard disposeGuard = default(DisposeGuard)) { RfriContext rfriContext = RfriAsyncDispatch.CreateRfriContext(clientBinding); disposeGuard.Add <RfriContext>(rfriContext); RfriDispatchTask rfriDispatchTask = beginDelegate(rfriContext); disposeGuard.Add <RfriDispatchTask>(rfriDispatchTask); asyncResult = rfriDispatchTask.AsyncResult; this.SubmitTask(rfriDispatchTask); disposeGuard.Success(); } } catch (FailRpcException ex) { failureAsyncResult = new FailureAsyncResult <RfriStatus>((RfriStatus)ex.ErrorCode, IntPtr.Zero, ex, asyncCallback, asyncState); asyncResult = failureAsyncResult; } catch (RfriException ex2) { failureAsyncResult = new FailureAsyncResult <RfriStatus>(ex2.Status, IntPtr.Zero, ex2, asyncCallback, asyncState); asyncResult = failureAsyncResult; } if (failureAsyncResult != null && !ThreadPool.QueueUserWorkItem(RfriAsyncDispatch.FailureWaitCallback, failureAsyncResult)) { failureAsyncResult.InvokeCallback(); } ExTraceGlobals.ReferralTracer.TraceDebug <string>(0, 0L, "{0} succeeded.", methodName); }, delegate(Exception exception) { ExTraceGlobals.ReferralTracer.TraceDebug <string, Exception>(0, 0L, "{0} failed. Exception={1}.", methodName, exception); }); return(asyncResult); }
// Token: 0x06000173 RID: 371 RVA: 0x00007308 File Offset: 0x00005508 public ICancelableAsyncResult BeginBind(ProtocolRequestInfo protocolRequestInfo, ClientBinding clientBinding, NspiBindFlags flags, NspiState state, Guid?guid, CancelableAsyncCallback asyncCallback, object asyncState) { return(this.BeginWrapper("BeginBind", asyncCallback, asyncState, true, (NspiContext context) => new NspiBindDispatchTask(asyncCallback, asyncState, protocolRequestInfo, clientBinding, context, flags, state, guid), () => ClientContextCache.CreateContext(clientBinding))); }
public RfriGetNewDSADispatchTask(CancelableAsyncCallback asyncCallback, object asyncState, ProtocolRequestInfo protocolRequestInfo, ClientBinding clientBinding, RfriContext context, RfriGetNewDSAFlags flags, string userDn) : base(asyncCallback, asyncState, protocolRequestInfo, clientBinding, context) { this.flags = flags; this.userDn = userDn; }
// Token: 0x0600011F RID: 287 RVA: 0x0000616D File Offset: 0x0000436D public RfriDispatchTask(CancelableAsyncCallback asyncCallback, object asyncState, ProtocolRequestInfo protocolRequestInfo, ClientBinding clientBinding, RfriContext context) : base(asyncCallback, asyncState) { this.status = RfriStatus.GeneralFailure; this.protocolRequestInfo = protocolRequestInfo; this.clientBinding = clientBinding; this.context = context; }