//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------------------------ namespace System.ServiceModel.Security { using System; using System.IdentityModel.Tokens; using System.Runtime.InteropServices; using System.ServiceModel; using System.IdentityModel.Protocols.WSTrust; /// <summary> /// A service contract that defines the methods which wrap the Message-oriented /// operation contracts exposed by <see cref="IWSTrustContract" />. /// </summary> [ServiceContract] [ComVisible(false)] public interface IWSTrustChannelContract : IWSTrustContract { /// <summary> /// Sends a WS-Trust Cancel message to an endpoint. /// </summary> /// <param name="request">The <see cref="System.IdentityModel.Protocols.WSTrust.RequestSecurityToken" /> that represents the request to the STS.</param> /// <returns>The <see cref="System.IdentityModel.Protocols.WSTrust.RequestSecurityTokenResponse" /> representing the STS response.</returns> System.IdentityModel.Protocols.WSTrust.RequestSecurityTokenResponse Cancel(System.IdentityModel.Protocols.WSTrust.RequestSecurityToken request); /// <summary> /// Asynchronously sends a WS-Trust Cancel message to an endpoint. /// </summary> /// <param name="request">The <see cref="System.IdentityModel.Protocols.WSTrust.RequestSecurityToken" /> that represents the request to the STS.</param> /// <param name="callback">An optional asynchronous callback, to be called when the send is complete.</param> /// <param name="state">A user-provided object that distinguishes this particular asynchronous send /// request from other requests.</param> /// <returns>An <see cref="IAsyncResult" /> object that represents the asynchronous send, which could still /// be pending. </returns> IAsyncResult BeginCancel(System.IdentityModel.Protocols.WSTrust.RequestSecurityToken request, AsyncCallback callback, object state); /// <summary> /// Completes the asynchronous send operation initiated by <see cref="BeginCancel" />. /// </summary> /// <param name="result">A reference to the outstanding asynchronous send request.</param> /// <param name="response">The <see cref="System.IdentityModel.Protocols.WSTrust.RequestSecurityTokenResponse" /> representing the STS response.</param> void EndCancel(IAsyncResult result, out System.IdentityModel.Protocols.WSTrust.RequestSecurityTokenResponse response); /// <summary> /// Sends a WS-Trust Issue message to an endpoint STS /// </summary> /// <param name="request">The <see cref="System.IdentityModel.Protocols.WSTrust.RequestSecurityToken" /> that represents the request to the STS.</param> /// <returns>A <see cref="SecurityToken" /> that represents the token issued by the STS.</returns> SecurityToken Issue(System.IdentityModel.Protocols.WSTrust.RequestSecurityToken request); /// <summary> /// Sends a WS-Trust Issue message to an endpoint STS /// </summary> /// <param name="request">The <see cref="System.IdentityModel.Protocols.WSTrust.RequestSecurityToken" /> that represents the request to the STS.</param> /// <param name="response">The <see cref="System.IdentityModel.Protocols.WSTrust.RequestSecurityTokenResponse" /> that represents the response from /// the STS.</param> /// <returns>A <see cref="SecurityToken" /> that represents the token issued by the STS.</returns> SecurityToken Issue(System.IdentityModel.Protocols.WSTrust.RequestSecurityToken request, out System.IdentityModel.Protocols.WSTrust.RequestSecurityTokenResponse response); /// <summary> /// Asynchronously sends a WS-Trust Renew message to an endpoint. /// </summary> /// <param name="request">The <see cref="System.IdentityModel.Protocols.WSTrust.RequestSecurityToken" /> that represents the request to the STS.</param> /// <param name="callback">An optional asynchronous callback, to be called when the send is complete.</param> /// <param name="asyncState">A user-provided object that distinguishes this particular asynchronous send /// request from other requests.</param> /// <returns>An <see cref="IAsyncResult" /> object that represents the asynchronous send, which could still /// be pending. </returns> IAsyncResult BeginIssue(System.IdentityModel.Protocols.WSTrust.RequestSecurityToken request, AsyncCallback callback, object asyncState); /// <summary> /// Completes the asynchronous send operation initiated by <see cref="BeginIssue" />. /// </summary> /// <param name="result">A reference to the outstanding asynchronous send request.</param> /// <param name="response">The <see cref="System.IdentityModel.Protocols.WSTrust.RequestSecurityTokenResponse" /> representing the STS response.</param> /// <returns>A <see cref="SecurityToken" /> that represents the token issued by the STS.</returns> SecurityToken EndIssue(IAsyncResult result, out System.IdentityModel.Protocols.WSTrust.RequestSecurityTokenResponse response); /// <summary> /// Sends a WS-Trust Renew message to an endpoint. /// </summary> /// <param name="request">The <see cref="System.IdentityModel.Protocols.WSTrust.RequestSecurityToken" /> that represents the request to the STS.</param> /// <returns>The <see cref="System.IdentityModel.Protocols.WSTrust.RequestSecurityTokenResponse" /> representing the STS response.</returns> System.IdentityModel.Protocols.WSTrust.RequestSecurityTokenResponse Renew(System.IdentityModel.Protocols.WSTrust.RequestSecurityToken request); /// <summary> /// Asynchronously sends a WS-Trust Renew message to an endpoint. /// </summary> /// <param name="request">The <see cref="System.IdentityModel.Protocols.WSTrust.RequestSecurityToken" /> that represents the request to the STS.</param> /// <param name="callback">An optional asynchronous callback, to be called when the send is complete.</param> /// <param name="state">A user-provided object that distinguishes this particular asynchronous send /// request from other requests.</param> /// <returns>An <see cref="IAsyncResult" /> object that represents the asynchronous send, which could still /// be pending. </returns> IAsyncResult BeginRenew(System.IdentityModel.Protocols.WSTrust.RequestSecurityToken request, AsyncCallback callback, object state); /// <summary> /// Completes the asynchronous send operation initiated by <see cref="BeginRenew" />. /// </summary> /// <param name="result">A reference to the outstanding asynchronous send request.</param> /// <param name="response">The <see cref="System.IdentityModel.Protocols.WSTrust.RequestSecurityTokenResponse" /> representing the STS response.</param> void EndRenew(IAsyncResult result, out System.IdentityModel.Protocols.WSTrust.RequestSecurityTokenResponse response); /// <summary> /// Sends a WS-Trust Validate message to an endpoint. /// </summary> /// <param name="request">The <see cref="System.IdentityModel.Protocols.WSTrust.RequestSecurityToken" /> that represents the request to the STS.</param> /// <returns>The <see cref="System.IdentityModel.Protocols.WSTrust.RequestSecurityTokenResponse" /> representing the STS response.</returns> System.IdentityModel.Protocols.WSTrust.RequestSecurityTokenResponse Validate(System.IdentityModel.Protocols.WSTrust.RequestSecurityToken request); /// <summary> /// Asynchronously sends a WS-Trust Validate message to an endpoint. /// </summary> /// <param name="request">The <see cref="System.IdentityModel.Protocols.WSTrust.RequestSecurityToken" /> that represents the request to the STS.</param> /// <param name="callback">An optional asynchronous callback, to be called when the send is complete.</param> /// <param name="state">A user-provided object that distinguishes this particular asynchronous send /// request from other requests.</param> /// <returns>An <see cref="IAsyncResult" /> object that represents the asynchronous send, which could still /// be pending. </returns> IAsyncResult BeginValidate(System.IdentityModel.Protocols.WSTrust.RequestSecurityToken request, AsyncCallback callback, object state); /// <summary> /// Completes the asynchronous send operation initiated by <see cref="BeginValidate" />. /// </summary> /// <param name="result">A reference to the outstanding asynchronous send request.</param> /// <param name="response">The <see cref="System.IdentityModel.Protocols.WSTrust.RequestSecurityTokenResponse" /> representing the STS response.</param> void EndValidate(IAsyncResult result, out System.IdentityModel.Protocols.WSTrust.RequestSecurityTokenResponse response); } }