NegotiateStream::RemoteIdentity Property

 

Gets information about the identity of the remote party sharing this authenticated stream.

Namespace:   System.Net.Security
Assembly:  System (in System.dll)

public:
property IIdentity^ RemoteIdentity {
	virtual IIdentity^ get();
}

Property Value

Type: System.Security.Principal::IIdentity^

An IIdentity object that describes the identity of the remote endpoint.

Exception Condition
InvalidOperationException

Authentication failed or has not occurred.

When accessed by the client, this property returns a GenericIdentity containing the Service Principal Name (SPN) of the server and the authentication protocol used. When accessed by the server, this property returns a WindowsIdentity that describes the client. If the WindowsIdentity is not available, client information is returned to the server in a GenericIdentity.

The following code example demonstrates displaying the value of this property.

static void EndAuthenticateCallback( IAsyncResult^ ar )
{

   // Get the saved data.
   ClientState^ cState = dynamic_cast<ClientState^>(ar->AsyncState);
   TcpClient^ clientRequest = cState->Client;
   NegotiateStream^ authStream = dynamic_cast<NegotiateStream^>(cState->AuthStream);
   Console::WriteLine( L"Ending authentication." );

   // Any exceptions that occurred during authentication are
   // thrown by the EndServerAuthenticate method.
   try
   {

      // This call blocks until the authentication is complete.
      authStream->EndAuthenticateAsServer( ar );
   }
   catch ( AuthenticationException^ e ) 
   {
      Console::WriteLine( e );
      Console::WriteLine( L"Authentication failed - closing connection." );
      cState->Waiter->Set();
      return;
   }
   catch ( Exception^ e ) 
   {
      Console::WriteLine( e );
      Console::WriteLine( L"Closing connection." );
      cState->Waiter->Set();
      return;
   }


   // Display properties of the authenticated client.
   IIdentity^ id = authStream->RemoteIdentity;
   Console::WriteLine( L"{0} was authenticated using {1}.", id->Name, id->AuthenticationType );
   cState->Waiter->Set();
}


.NET Framework
Available since 2.0
Return to top
Show: