public virtual object GetUserToken(HttpContext context) { HttpClientContext clientContext = ((HttpClientContext)HttpClientContext.Adapt(context )); Principal userPrincipal = null; AuthState targetAuthState = clientContext.GetTargetAuthState(); if (targetAuthState != null) { userPrincipal = GetAuthPrincipal(targetAuthState); if (userPrincipal == null) { AuthState proxyAuthState = clientContext.GetProxyAuthState(); userPrincipal = GetAuthPrincipal(proxyAuthState); } } if (userPrincipal == null) { HttpConnection conn = clientContext.GetConnection(); if (conn.IsOpen() && conn is ManagedHttpClientConnection) { SSLSession sslsession = ((ManagedHttpClientConnection)conn).GetSSLSession(); if (sslsession != null) { userPrincipal = sslsession.GetLocalPrincipal(); } } } return(userPrincipal); }