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 virtual IIdentity RemoteIdentity { get; }

Property Value

Type: System.Security.Principal.IIdentity
An IIdentity object that describes the identity of the remote endpoint.

ExceptionCondition
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.

    public static void EndAuthenticateCallback (IAsyncResult ar)
    {
        // Get the saved data.
        ClientState cState = (ClientState) ar.AsyncState;
        TcpClient clientRequest = cState.Client;
        NegotiateStream authStream = (NegotiateStream) cState.AuthenticatedStream;
        Console.WriteLine("Ending authentication.");
        // Any exceptions that occurred during authentication are 
        // thrown by the EndAuthenticateAsServer method. 
        try 
        {
            // This call blocks until the authentication is complete.
            authStream.EndAuthenticateAsServer(ar);
        }
        catch (AuthenticationException e)
        {
            Console.WriteLine(e);
            Console.WriteLine("Authentication failed - closing connection.");
            cState.Waiter.Set();
            return;
        }
        catch (Exception e)
        {
            Console.WriteLine(e);
            Console.WriteLine("Closing connection.");
            cState.Waiter.Set();
            return;
        }
        // Display properties of the authenticated client.
        IIdentity id = authStream.RemoteIdentity;
        Console.WriteLine("{0} was authenticated using {1}.", 
            id.Name, 
            id.AuthenticationType
            );
        cState.Waiter.Set();

}
public:
        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->AuthenticatedStream);
            Console::WriteLine(S"Ending authentication.");
            // Any exceptions that occurred during authentication are
            // thrown by the EndServerAuthenticate method.
            try 
            {
                // This call blocks until the authentication is complete.
                authStream->EndServerAuthenticate(ar);
            }
            catch (AuthenticationException* e)
            {
                Console::WriteLine(e);
                Console::WriteLine(S"Authentication failed - closing connection.");
                cState->Waiter->Set();
                return;
            }
            catch (Exception* e)
            {
                Console::WriteLine(e);
                Console::WriteLine(S"Closing connection.");
                cState->Waiter->Set();
                return;
            }
            // Display properties of the authenticated client.
            IIdentity* id = authStream->RemoteIdentity;
            Console::WriteLine(S"{0} was authenticated using {1}.", 
                id->Name, 
                id->AuthenticationType
                );
            cState->Waiter->Set();

    }

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0, 2.0
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

ADD
Show:
© 2014 Microsoft