Compartir a través de


SignInResponseMessage (Clase)

Represents a Federation SignIn Response Message.

Espacio de nombres: Microsoft.IdentityModel.Protocols.WSFederation
Ensamblado: Microsoft.IdentityModel (en microsoft.identitymodel.dll)

Uso

    Dim instance As SignInResponseMessage

Sintaxis

'Declaración
Public Class SignInResponseMessage
    Inherits WSFederationMessage
public class SignInResponseMessage : WSFederationMessage
public ref class SignInResponseMessage : public WSFederationMessage
public class SignInResponseMessage extends WSFederationMessage
public class SignInResponseMessage extends WSFederationMessage

Ejemplo

Code snippet of a sample web page that accepts HTTP request and creates SignInRequest message and SignInResponse message.

namespace SimplePassiveSTS
{
    public partial class _Default : System.Web.UI.Page
    {
        /// <summary>
        /// Returns whether the user is authenticated or not. 
        /// </summary>
        bool IsAuthenticatedUser
        {
            get
            {
return ( ( Page.User != null ) && ( Page.User.Identity != null ) && ( Page.User.Identity.IsAuthenticated ) );
            }
        }

       /// <summary>
 /// Helper function that processes the incoming request message
 /// and creates a response message
       /// </summary>
private SignInResponseMessage ProcessSignInRequest(SignInRequestMessage requestMessage )
      {
            if ( requestMessage == null )
            {
                throw new ArgumentNullException( "requestMessage" );
            }

// Ensure that the requestMessage has the required ‘wtrealm’ 
// parameter
            if ( String.IsNullOrEmpty( requestMessage.Realm ) )
            {
                throw new InvalidOperationException(
"Incoming Passive Request message didn't contain the wtrealm parameter." );
            }

// Create a SecurityTokenServiceConfiguration instance

SecurityTokenServiceConfiguration stsconfig = new SecurityTokenServiceConfiguration( "SimplePassiveSTS" );

            // Create the STS.
            SecurityTokenService sts = new MySecurityTokenService(stsconfig); 

            // Create the WS-Federation serializer to process the request and
// create the response.
// This creates the default WSFederationSerializer that handles 
// the WS-Trust Feb 2005 specification.
WSFederationSerializer federationSerializer = new WSFederationSerializer();

            // Create RST from the request
RequestSecurityToken request = federationSerializer.CreateRequest (                                               requestMessage, new WSTrustSerializationContext() );

            // Get RSTR from the STS.
RequestSecurityTokenResponse response = sts.Issue(ClaimsPrincipal.Current, request );

            // Create WS-Federation Response message from the RSTR
            return new SignInResponseMessage( new Uri( response.ReplyTo ),
                federationSerializer.GetResponseAsString(response, new WSTrustSerializationContext() ) );

        }

        /// <summary>
 /// We perform WS-Federation passive protocol logic in this method ///and call out to the appropriate request handlers. 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Page_PreRender( object sender, EventArgs e )
        {
            if ( IsAuthenticatedUser )
            {
                // Use WSFederationMessage.CreateFromUri to parse the request and create a WSFederationMessage. 
                WSFederationMessage federationMessage = WSFederationMessage.CreateFromUri( Request.Url );

                if ( federationMessage.Action == WSFederationConstants.Actions.SignIn )
                {
                    // Process the sign in request. 
SignInResponseMessage responseMessage = ProcessSignInRequest(
                        federationMessage as SignInRequestMessage );

// Always Echo back the Context (wctx) which came on the // request.
                    responseMessage.Context = federationMessage.Context;

                    // Write the response message.     
                    responseMessage.Write( Page.Response.Output );
                    Response.Flush();
                    Response.End();
                }
                else if ( federationMessage.Action == WSFederationConstants.Actions.SignOut ||
                          federationMessage.Action == WSFederationConstants.Actions.SignOutCleanup )
                {
                   // Perform the clean-up operation here
                }
                else
                {
                    throw new InvalidOperationException( String.Format(
                                  CultureInfo.InvariantCulture, "Unsupported Action: {0}", federationMessage.Action ) );
                }
            }

        }

    }

}

Notas

This message is created when the received message wa parameter is wsignin1.0 with a wresult/wresultptr parameter.

In Beta release, when converting a RequestSecurityTokenResponse object to a SignInResponseMessage object, the context attribute on RequestSecurityTokenResponse is not transferred over, and needs to be manually set.

Jerarquía de herencia

System.Object
   Microsoft.IdentityModel.Protocols.WSFederation.WSFederationMessage
    Microsoft.IdentityModel.Protocols.WSFederation.SignInResponseMessage

Seguridad para subprocesos

Los miembros estáticos públicos (Shared en Visual Basic) de este tipo son seguros para subprocesos.No se garantiza que los miembros de instancias sean seguros para subprocesos.

Plataformas

Plataformas de desarrollo

Windows Server 2003, Windows Vista

Target Platforms

Windows Server 2008, Windows Vista, Not tested on Windows XP

Change History

Vea también

Referencia

SignInResponseMessage (Miembros)
Microsoft.IdentityModel.Protocols.WSFederation (Espacio de nombres)