Beispiel #1
0
            static void GetTokensCallback(IAsyncResult result)
            {
                if (result.CompletedSynchronously)
                {
                    return;
                }
                CreateSspiStateAsyncResult typedResult = (CreateSspiStateAsyncResult)result.AsyncState;

                try
                {
                    SecurityToken     token       = typedResult.tlsTokenProvider.ClientTokenProvider.EndGetToken(result);
                    X509SecurityToken clientToken = TlsnegoTokenProvider.ValidateToken(token);
                    typedResult.sspiState = typedResult.tlsTokenProvider.CreateTlsSspiState(clientToken);
                    typedResult.Complete(false);
                }
                catch (Exception e)
                {
                    if (Fx.IsFatal(e))
                    {
                        throw;
                    }

                    typedResult.Complete(false, e);
                }
            }
            public CreateSspiStateAsyncResult(EndpointAddress target, Uri via, TlsnegoTokenProvider tlsTokenProvider, TimeSpan timeout, AsyncCallback callback, object state) : base(callback, state)
            {
                this.tlsTokenProvider = tlsTokenProvider;
                IAsyncResult result = this.tlsTokenProvider.ClientTokenProvider.BeginGetToken(timeout, getTokensCallback, this);

                if (result.CompletedSynchronously)
                {
                    X509SecurityToken token = TlsnegoTokenProvider.ValidateToken(this.tlsTokenProvider.ClientTokenProvider.EndGetToken(result));
                    this.sspiState = this.tlsTokenProvider.CreateTlsSspiState(token);
                    base.Complete(true);
                }
            }
 private static void GetTokensCallback(IAsyncResult result)
 {
     if (!result.CompletedSynchronously)
     {
         TlsnegoTokenProvider.CreateSspiStateAsyncResult asyncState = (TlsnegoTokenProvider.CreateSspiStateAsyncResult)result.AsyncState;
         try
         {
             X509SecurityToken token = TlsnegoTokenProvider.ValidateToken(asyncState.tlsTokenProvider.ClientTokenProvider.EndGetToken(result));
             asyncState.sspiState = asyncState.tlsTokenProvider.CreateTlsSspiState(token);
             asyncState.Complete(false);
         }
         catch (Exception exception)
         {
             if (Fx.IsFatal(exception))
             {
                 throw;
             }
             asyncState.Complete(false, exception);
         }
     }
 }