a575963da9
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
551 lines
33 KiB
XML
551 lines
33 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<Type Name="SslStreamSecurityBindingElement" FullName="System.ServiceModel.Channels.SslStreamSecurityBindingElement">
|
||
<TypeSignature Language="C#" Value="public class SslStreamSecurityBindingElement : System.ServiceModel.Channels.BindingElement, System.ServiceModel.Channels.ITransportTokenAssertionProvider, System.ServiceModel.Description.IPolicyExportExtension" />
|
||
<TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit SslStreamSecurityBindingElement extends System.ServiceModel.Channels.BindingElement implements class System.ServiceModel.Channels.ITransportTokenAssertionProvider, class System.ServiceModel.Description.IPolicyExportExtension" />
|
||
<AssemblyInfo>
|
||
<AssemblyName>System.ServiceModel</AssemblyName>
|
||
<AssemblyVersion>4.0.0.0</AssemblyVersion>
|
||
</AssemblyInfo>
|
||
<Base>
|
||
<BaseTypeName>System.ServiceModel.Channels.BindingElement</BaseTypeName>
|
||
</Base>
|
||
<Interfaces>
|
||
<Interface>
|
||
<InterfaceName>System.ServiceModel.Channels.ITransportTokenAssertionProvider</InterfaceName>
|
||
</Interface>
|
||
<Interface>
|
||
<InterfaceName>System.ServiceModel.Description.IPolicyExportExtension</InterfaceName>
|
||
</Interface>
|
||
</Interfaces>
|
||
<Docs>
|
||
<remarks>
|
||
<attribution license="cc4" from="Microsoft" modified="false" />
|
||
<para>Transports that use a stream-oriented protocol such as TCP and named pipes support stream-based transport upgrades. Specifically, indigo1 provides security upgrades. The configuration of this transport security is encapsulated by this class as well as by <see cref="T:System.ServiceModel.Channels.SslStreamSecurityBindingElement" />, which can be configured and added to a custom binding. In addition, a third party can write their own custom StreamSecurityBindingElement. These binding elements extend the <see cref="T:System.ServiceModel.Channels.StreamUpgradeBindingElement" /> class that is called to build the client and server stream upgrade providers.</para>
|
||
<para>A custom binding contains a collection of binding elements arranged in a specific order: the element that represents the top of the binding stack is added first, the next element down in the binding stack is added second, and so on.</para>
|
||
<procedure>
|
||
<format type="text/html">
|
||
<h2>To add this class to a binding</h2>
|
||
</format>
|
||
<steps>
|
||
<step>
|
||
<para>Create a <see cref="T:System.ServiceModel.Channels.BindingElementCollection" />.</para>
|
||
</step>
|
||
<step>
|
||
<para>Create custom binding elements that are above this binding element in the binding stack, such as the optional <see cref="T:System.ServiceModel.Channels.TransactionFlowBindingElement" /> and <see cref="T:System.ServiceModel.Channels.ReliableSessionBindingElement" />.</para>
|
||
</step>
|
||
<step>
|
||
<para>Add the created elements in the order described previously to the <see cref="T:System.ServiceModel.Channels.BindingElementCollection" /> using the <see cref="M:System.ServiceModel.Channels.BindingElementCollection.InsertItem(System.Int32,System.ServiceModel.Channels.BindingElement)" /> method.</para>
|
||
</step>
|
||
<step>
|
||
<para>Create an instance of <see cref="T:System.ServiceModel.Channels.SslStreamSecurityBindingElement" /> and add it to the collection.</para>
|
||
</step>
|
||
<step>
|
||
<para>Add any additional custom binding elements to the collection, such as <see cref="T:System.ServiceModel.Channels.TcpTransportBindingElement" />.</para>
|
||
</step>
|
||
</steps>
|
||
</procedure>
|
||
<para>There are three scenarios in which you must either manually specify the correct UPN/SPN on the client endpoint after importing the WSDL, or specify a custom <see cref="T:System.ServiceModel.Security.IdentityVerifier" /> on the client’s <see cref="T:System.ServiceModel.Channels.SslStreamSecurityBindingElement" />.</para>
|
||
<list type="ordered">
|
||
<item>
|
||
<para>No service identity is published in WSDL. <see cref="F:System.ServiceModel.Configuration.AuthenticationMode.SspiNegotiatedOverTransport" /> and HTTPS are used (for example, a <see cref="T:System.ServiceModel.WSHttpBinding" /> with SecurityMode = <see cref="F:System.ServiceModel.SecurityMode.TransportWithMessageCredential" />). If the service is not running with the machine identity, you must manually specify the correct UPN/SPN on the client endpoint after importing the WSDL.</para>
|
||
</item>
|
||
<item>
|
||
<para>DNSservice identity is published in WSDL. <see cref="F:System.ServiceModel.Configuration.AuthenticationMode.SspiNegotiatedOverTransport" /> and <see cref="T:System.ServiceModel.Channels.SslStreamSecurityBindingElement" /> are used (for example, <see cref="T:System.ServiceModel.NetTcpBinding" /> with SecurityMode = <see cref="F:System.ServiceModel.SecurityMode.TransportWithMessageCredential" />) instead of a UPN/SPN. If the service is not running with the machine identity, or the DNS identity is not the machine's identity, you must manually specify the correct UPN/SPN on the client endpoint after importing the WSDL.</para>
|
||
</item>
|
||
<item>
|
||
<para> DNS identity is published in WSDL. If <see cref="T:System.ServiceModel.Channels.SslStreamSecurityBindingElement" /> is overridden on the client, you must specify a custom <see cref="T:System.ServiceModel.Security.IdentityVerifier" /> on the client's <see cref="T:System.ServiceModel.Channels.SslStreamSecurityBindingElement" />.</para>
|
||
</item>
|
||
</list>
|
||
<para>The following code shows how to manually specify the correct UPN/SPN on the client endpoint, as well as how to specify a custom <see cref="T:System.ServiceModel.Security.IdentityVerifier" /> on the client's <see cref="T:System.ServiceModel.Channels.SslStreamSecurityBindingElement" />.</para>
|
||
<code>
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.Linq;
|
||
using System.Net;
|
||
using System.IdentityModel.Claims;
|
||
using System.IdentityModel.Policy;
|
||
using System.Security.Cryptography.X509Certificates;
|
||
using System.ServiceModel;
|
||
using System.ServiceModel.Channels;
|
||
using System.ServiceModel.Description;
|
||
using System.ServiceModel.Security;
|
||
using System.Xml;
|
||
|
||
namespace ServiceNamespace
|
||
{
|
||
[ServiceContract]
|
||
interface IService
|
||
{
|
||
[OperationContract]
|
||
void DoSomething();
|
||
}
|
||
|
||
class DnsIdentityVerifier : IdentityVerifier
|
||
{
|
||
DnsEndpointIdentity _expectedIdentity;
|
||
|
||
public DnsIdentityVerifier(EndpointAddress serviceEndpoint)
|
||
{
|
||
_expectedIdentity = new DnsEndpointIdentity(serviceEndpoint.Uri.DnsSafeHost);
|
||
}
|
||
|
||
public override bool CheckAccess(EndpointIdentity identity, AuthorizationContext authContext)
|
||
{
|
||
Claim dnsClaim = authContext.Claims().Single(claim => claim.ClaimType == ClaimTypes.Dns);
|
||
return String.Equals(_expectedIdentity.IdentityClaim.Resource, dnsClaim.Resource);
|
||
}
|
||
|
||
public override bool TryGetIdentity(EndpointAddress reference, out EndpointIdentity identity)
|
||
{
|
||
identity = _expectedIdentity;
|
||
return true;
|
||
}
|
||
}
|
||
|
||
static class LinqExtensionForClaims
|
||
{
|
||
public static IEnumerable<Claim> Claims(this AuthorizationContext authContext)
|
||
{
|
||
if (null != authContext.ClaimSets)
|
||
{
|
||
foreach (ClaimSet claimSet in authContext.ClaimSets)
|
||
{
|
||
if (null != claimSet)
|
||
{
|
||
foreach (Claim claim in claimSet)
|
||
{
|
||
yield return claim;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
class Service : IService
|
||
{
|
||
public void DoSomething()
|
||
{
|
||
Console.WriteLine("Service called.");
|
||
}
|
||
}
|
||
|
||
class Program
|
||
{
|
||
static void Main(string[] args)
|
||
{
|
||
string hostname = Dns.GetHostEntry(String.Empty).HostName;
|
||
NetTcpBinding serviceBinding = new NetTcpBinding(SecurityMode.TransportWithMessageCredential);
|
||
|
||
ServiceHost serviceHost = new ServiceHost(typeof(Service), new Uri(String.Format("net.tcp://{0}:8080/Service", hostname)));
|
||
serviceHost.Credentials.ServiceCertificate.SetCertificate(StoreLocation.LocalMachine, StoreName.My, X509FindType.FindByThumbprint, "8a 42 1b eb cf 8a 14 b1 de 83 d9 a5 70 88 0a 62 f9 bf 69 06");
|
||
ServiceEndpoint serviceEndpoint = serviceHost.AddServiceEndpoint(typeof(IService), serviceBinding, "Endpoint");
|
||
serviceHost.Open();
|
||
|
||
CustomBinding clientBinding = new CustomBinding(serviceBinding.CreateBindingElements());
|
||
SslStreamSecurityBindingElement sslStream = clientBinding.Elements.Find<SslStreamSecurityBindingElement>();
|
||
sslStream.IdentityVerifier = new DnsIdentityVerifier(serviceEndpoint.Address);
|
||
|
||
ChannelFactory<IService> channelFactory = new ChannelFactory<IService>(clientBinding, new EndpointAddress(serviceEndpoint.Address.Uri, UpnEndpointIdentity.CreateUpnIdentity("username@domain")));
|
||
channelFactory.Credentials.Windows.AllowNtlm = false;
|
||
IService channel = channelFactory.CreateChannel();
|
||
channel.DoSomething();
|
||
}
|
||
}
|
||
|
||
</code>
|
||
</remarks>
|
||
<summary>
|
||
<attribution license="cc4" from="Microsoft" modified="false" />
|
||
<para>Represents a custom binding element that supports channel security using an SSL stream.</para>
|
||
</summary>
|
||
</Docs>
|
||
<Members>
|
||
<Member MemberName=".ctor">
|
||
<MemberSignature Language="C#" Value="public SslStreamSecurityBindingElement ();" />
|
||
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
|
||
<MemberType>Constructor</MemberType>
|
||
<AssemblyInfo>
|
||
<AssemblyVersion>4.0.0.0</AssemblyVersion>
|
||
</AssemblyInfo>
|
||
<Parameters />
|
||
<Docs>
|
||
<remarks>To be added.</remarks>
|
||
<summary>
|
||
<attribution license="cc4" from="Microsoft" modified="false" />
|
||
<para>Initializes a new instance of the <see cref="T:System.ServiceModel.Channels.SslStreamSecurityBindingElement" /> class. </para>
|
||
</summary>
|
||
</Docs>
|
||
</Member>
|
||
<Member MemberName="BuildChannelFactory<TChannel>">
|
||
<MemberSignature Language="C#" Value="public override System.ServiceModel.Channels.IChannelFactory<TChannel> BuildChannelFactory<TChannel> (System.ServiceModel.Channels.BindingContext context);" />
|
||
<MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance class System.ServiceModel.Channels.IChannelFactory`1<!!TChannel> BuildChannelFactory<TChannel>(class System.ServiceModel.Channels.BindingContext context) cil managed" />
|
||
<MemberType>Method</MemberType>
|
||
<AssemblyInfo>
|
||
<AssemblyVersion>4.0.0.0</AssemblyVersion>
|
||
</AssemblyInfo>
|
||
<ReturnValue>
|
||
<ReturnType>System.ServiceModel.Channels.IChannelFactory<TChannel></ReturnType>
|
||
</ReturnValue>
|
||
<TypeParameters>
|
||
<TypeParameter Name="TChannel" />
|
||
</TypeParameters>
|
||
<Parameters>
|
||
<Parameter Name="context" Type="System.ServiceModel.Channels.BindingContext" />
|
||
</Parameters>
|
||
<Docs>
|
||
<remarks>
|
||
<attribution license="cc4" from="Microsoft" modified="false" />
|
||
<para>This method creates a channel factory, which is used to create a channel that processes outgoing messages for this binding.</para>
|
||
</remarks>
|
||
<summary>
|
||
<attribution license="cc4" from="Microsoft" modified="false" />
|
||
<para>Creates a channel factory of a specified type.</para>
|
||
</summary>
|
||
<returns>
|
||
<attribution license="cc4" from="Microsoft" modified="false" />
|
||
<para>An <see cref="T:System.serviceModel.Channels.IChannelFactory" /> object that represents the channel factory of type <paramref name="TChannel" />.</para>
|
||
</returns>
|
||
<param name="context">
|
||
<attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.serviceModel.Channels.BindingContext" />.</param>
|
||
<typeparam name="TChannel">
|
||
<attribution license="cc4" from="Microsoft" modified="false" />Type of channel factory.</typeparam>
|
||
</Docs>
|
||
</Member>
|
||
<Member MemberName="BuildChannelListener<TChannel>">
|
||
<MemberSignature Language="C#" Value="public override System.ServiceModel.Channels.IChannelListener<TChannel> BuildChannelListener<TChannel> (System.ServiceModel.Channels.BindingContext context) where TChannel : class, System.ServiceModel.Channels.IChannel;" />
|
||
<MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance class System.ServiceModel.Channels.IChannelListener`1<!!TChannel> BuildChannelListener<class (class System.ServiceModel.Channels.IChannel) TChannel>(class System.ServiceModel.Channels.BindingContext context) cil managed" />
|
||
<MemberType>Method</MemberType>
|
||
<AssemblyInfo>
|
||
<AssemblyVersion>4.0.0.0</AssemblyVersion>
|
||
</AssemblyInfo>
|
||
<ReturnValue>
|
||
<ReturnType>System.ServiceModel.Channels.IChannelListener<TChannel></ReturnType>
|
||
</ReturnValue>
|
||
<TypeParameters>
|
||
<TypeParameter Name="TChannel">
|
||
<Constraints>
|
||
<ParameterAttribute>ReferenceTypeConstraint</ParameterAttribute>
|
||
<InterfaceName>System.ServiceModel.Channels.IChannel</InterfaceName>
|
||
</Constraints>
|
||
</TypeParameter>
|
||
</TypeParameters>
|
||
<Parameters>
|
||
<Parameter Name="context" Type="System.ServiceModel.Channels.BindingContext" />
|
||
</Parameters>
|
||
<Docs>
|
||
<remarks>
|
||
<attribution license="cc4" from="Microsoft" modified="false" />
|
||
<para>This method creates a channel listener, which is used to create a channel that processes incoming messages for this binding.</para>
|
||
</remarks>
|
||
<summary>
|
||
<attribution license="cc4" from="Microsoft" modified="false" />
|
||
<para>Creates a channel listener of a specified type.</para>
|
||
</summary>
|
||
<returns>
|
||
<attribution license="cc4" from="Microsoft" modified="false" />
|
||
<para>An <see cref="T:System.serviceModel.Channels.IChannelListener" /> object that represents a channel listener of type <paramref name="TChannel" />.</para>
|
||
</returns>
|
||
<param name="context">
|
||
<attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.serviceModel.Channels.BindingContext" />.</param>
|
||
<typeparam name="TChannel">
|
||
<attribution license="cc4" from="Microsoft" modified="false" />Type of channel listener.</typeparam>
|
||
</Docs>
|
||
</Member>
|
||
<Member MemberName="BuildClientStreamUpgradeProvider">
|
||
<MemberSignature Language="C#" Value="public System.ServiceModel.Channels.StreamUpgradeProvider BuildClientStreamUpgradeProvider (System.ServiceModel.Channels.BindingContext context);" />
|
||
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance class System.ServiceModel.Channels.StreamUpgradeProvider BuildClientStreamUpgradeProvider(class System.ServiceModel.Channels.BindingContext context) cil managed" />
|
||
<MemberType>Method</MemberType>
|
||
<AssemblyInfo>
|
||
<AssemblyVersion>4.0.0.0</AssemblyVersion>
|
||
</AssemblyInfo>
|
||
<ReturnValue>
|
||
<ReturnType>System.ServiceModel.Channels.StreamUpgradeProvider</ReturnType>
|
||
</ReturnValue>
|
||
<Parameters>
|
||
<Parameter Name="context" Type="System.ServiceModel.Channels.BindingContext" />
|
||
</Parameters>
|
||
<Docs>
|
||
<remarks>
|
||
<attribution license="cc4" from="Microsoft" modified="false" />
|
||
<para>This method is called when opening the client channel factory and provides a custom implementation of the <see cref="T:System.ServiceModel.Channels.StreamUpgradeProvider" /> abstract class.</para>
|
||
<para>The <see cref="T:System.ServiceModel.Channels.BindingContext" /> parameter enables reacting to other elements in the channel stack.</para>
|
||
</remarks>
|
||
<summary>
|
||
<attribution license="cc4" from="Microsoft" modified="false" />
|
||
<para>Creates an instance on the client of the <see cref="T:System.ServiceModel.Channels.StreamUpgradeProvider" /> based on the channel context provided.</para>
|
||
</summary>
|
||
<returns>
|
||
<attribution license="cc4" from="Microsoft" modified="false" />
|
||
<para>An instance of the <see cref="T:System.ServiceModel.Channels.StreamUpgradeProvider" />. </para>
|
||
</returns>
|
||
<param name="context">
|
||
<attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.ServiceModel.Channels.BindingContext" /> for the entire channel stack.</param>
|
||
</Docs>
|
||
</Member>
|
||
<Member MemberName="BuildServerStreamUpgradeProvider">
|
||
<MemberSignature Language="C#" Value="public System.ServiceModel.Channels.StreamUpgradeProvider BuildServerStreamUpgradeProvider (System.ServiceModel.Channels.BindingContext context);" />
|
||
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance class System.ServiceModel.Channels.StreamUpgradeProvider BuildServerStreamUpgradeProvider(class System.ServiceModel.Channels.BindingContext context) cil managed" />
|
||
<MemberType>Method</MemberType>
|
||
<AssemblyInfo>
|
||
<AssemblyVersion>4.0.0.0</AssemblyVersion>
|
||
</AssemblyInfo>
|
||
<ReturnValue>
|
||
<ReturnType>System.ServiceModel.Channels.StreamUpgradeProvider</ReturnType>
|
||
</ReturnValue>
|
||
<Parameters>
|
||
<Parameter Name="context" Type="System.ServiceModel.Channels.BindingContext" />
|
||
</Parameters>
|
||
<Docs>
|
||
<remarks>
|
||
<attribution license="cc4" from="Microsoft" modified="false" />
|
||
<para>This method is called when opening the service and provides a custom implementation of the <see cref="T:System.ServiceModel.Channels.StreamUpgradeProvider" /> abstract class.</para>
|
||
<para>The <see cref="T:System.ServiceModel.Channels.BindingContext" /> parameter enables reacting to other elements in the channel stack.</para>
|
||
</remarks>
|
||
<summary>
|
||
<attribution license="cc4" from="Microsoft" modified="false" />
|
||
<para>Creates an instance on the server of the <see cref="T:System.ServiceModel.Channels.StreamUpgradeProvider" /> based on the channel context provided.</para>
|
||
</summary>
|
||
<returns>
|
||
<attribution license="cc4" from="Microsoft" modified="false" />
|
||
<para>An instance of the <see cref="T:System.ServiceModel.Channels.StreamUpgradeProvider" />.</para>
|
||
</returns>
|
||
<param name="context">
|
||
<attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.ServiceModel.Channels.BindingContext" /> for the entire channel stack.</param>
|
||
</Docs>
|
||
</Member>
|
||
<Member MemberName="CanBuildChannelFactory<TChannel>">
|
||
<MemberSignature Language="C#" Value="public override bool CanBuildChannelFactory<TChannel> (System.ServiceModel.Channels.BindingContext context);" />
|
||
<MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance bool CanBuildChannelFactory<TChannel>(class System.ServiceModel.Channels.BindingContext context) cil managed" />
|
||
<MemberType>Method</MemberType>
|
||
<AssemblyInfo>
|
||
<AssemblyVersion>4.0.0.0</AssemblyVersion>
|
||
</AssemblyInfo>
|
||
<ReturnValue>
|
||
<ReturnType>System.Boolean</ReturnType>
|
||
</ReturnValue>
|
||
<TypeParameters>
|
||
<TypeParameter Name="TChannel" />
|
||
</TypeParameters>
|
||
<Parameters>
|
||
<Parameter Name="context" Type="System.ServiceModel.Channels.BindingContext" />
|
||
</Parameters>
|
||
<Docs>
|
||
<remarks>
|
||
<attribution license="cc4" from="Microsoft" modified="false" />
|
||
<para>You should call this method before trying to create a channel factory.</para>
|
||
</remarks>
|
||
<summary>
|
||
<attribution license="cc4" from="Microsoft" modified="false" />
|
||
<para>Gets a value that indicates whether a channel factory of the specified type can be built.</para>
|
||
</summary>
|
||
<returns>
|
||
<attribution license="cc4" from="Microsoft" modified="false" />
|
||
<para>true if a channel factory of the specified type can be built; otherwise, false.</para>
|
||
</returns>
|
||
<param name="context">
|
||
<attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.ServiceModel.Channels.BindingContext" />.</param>
|
||
<typeparam name="TChannel">
|
||
<attribution license="cc4" from="Microsoft" modified="false" />Type of channel factory.</typeparam>
|
||
</Docs>
|
||
</Member>
|
||
<Member MemberName="CanBuildChannelListener<TChannel>">
|
||
<MemberSignature Language="C#" Value="public override bool CanBuildChannelListener<TChannel> (System.ServiceModel.Channels.BindingContext context) where TChannel : class, System.ServiceModel.Channels.IChannel;" />
|
||
<MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance bool CanBuildChannelListener<class (class System.ServiceModel.Channels.IChannel) TChannel>(class System.ServiceModel.Channels.BindingContext context) cil managed" />
|
||
<MemberType>Method</MemberType>
|
||
<AssemblyInfo>
|
||
<AssemblyVersion>4.0.0.0</AssemblyVersion>
|
||
</AssemblyInfo>
|
||
<ReturnValue>
|
||
<ReturnType>System.Boolean</ReturnType>
|
||
</ReturnValue>
|
||
<TypeParameters>
|
||
<TypeParameter Name="TChannel">
|
||
<Constraints>
|
||
<ParameterAttribute>ReferenceTypeConstraint</ParameterAttribute>
|
||
<InterfaceName>System.ServiceModel.Channels.IChannel</InterfaceName>
|
||
</Constraints>
|
||
</TypeParameter>
|
||
</TypeParameters>
|
||
<Parameters>
|
||
<Parameter Name="context" Type="System.ServiceModel.Channels.BindingContext" />
|
||
</Parameters>
|
||
<Docs>
|
||
<remarks>
|
||
<attribution license="cc4" from="Microsoft" modified="false" />
|
||
<para>You should call this method before trying to create a channel listener.</para>
|
||
</remarks>
|
||
<summary>
|
||
<attribution license="cc4" from="Microsoft" modified="false" />
|
||
<para>Gets a value that indicates whether a channel listener of the specified type can be built.</para>
|
||
</summary>
|
||
<returns>
|
||
<attribution license="cc4" from="Microsoft" modified="false" />
|
||
<para>true if a channel listener of the specified type can be built; otherwise, false.</para>
|
||
</returns>
|
||
<param name="context">
|
||
<attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.serviceModel.Channels.BindingContext" />.</param>
|
||
<typeparam name="TChannel">
|
||
<attribution license="cc4" from="Microsoft" modified="false" />Type of channel listener.</typeparam>
|
||
</Docs>
|
||
</Member>
|
||
<Member MemberName="Clone">
|
||
<MemberSignature Language="C#" Value="public override System.ServiceModel.Channels.BindingElement Clone ();" />
|
||
<MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance class System.ServiceModel.Channels.BindingElement Clone() cil managed" />
|
||
<MemberType>Method</MemberType>
|
||
<AssemblyInfo>
|
||
<AssemblyVersion>4.0.0.0</AssemblyVersion>
|
||
</AssemblyInfo>
|
||
<ReturnValue>
|
||
<ReturnType>System.ServiceModel.Channels.BindingElement</ReturnType>
|
||
</ReturnValue>
|
||
<Parameters />
|
||
<Docs>
|
||
<remarks>To be added.</remarks>
|
||
<summary>
|
||
<attribution license="cc4" from="Microsoft" modified="false" />
|
||
<para>Creates a new instance that is a copy of the current instance.</para>
|
||
</summary>
|
||
<returns>
|
||
<attribution license="cc4" from="Microsoft" modified="false" />
|
||
<para>A <see cref="T:System.ServiceModel.Channels.SslStreamSecurityBindingElement" /> instance that is a copy of the current instance.</para>
|
||
</returns>
|
||
</Docs>
|
||
</Member>
|
||
<Member MemberName="GetProperty<T>">
|
||
<MemberSignature Language="C#" Value="public override T GetProperty<T> (System.ServiceModel.Channels.BindingContext context) where T : class;" />
|
||
<MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance !!T GetProperty<class T>(class System.ServiceModel.Channels.BindingContext context) cil managed" />
|
||
<MemberType>Method</MemberType>
|
||
<AssemblyInfo>
|
||
<AssemblyVersion>4.0.0.0</AssemblyVersion>
|
||
</AssemblyInfo>
|
||
<ReturnValue>
|
||
<ReturnType>T</ReturnType>
|
||
</ReturnValue>
|
||
<TypeParameters>
|
||
<TypeParameter Name="T">
|
||
<Constraints>
|
||
<ParameterAttribute>ReferenceTypeConstraint</ParameterAttribute>
|
||
</Constraints>
|
||
</TypeParameter>
|
||
</TypeParameters>
|
||
<Parameters>
|
||
<Parameter Name="context" Type="System.ServiceModel.Channels.BindingContext" />
|
||
</Parameters>
|
||
<Docs>
|
||
<remarks>
|
||
<attribution license="cc4" from="Microsoft" modified="false" />
|
||
<para>This method gets the specified object from the base class or from one of that class's ancestors. The object returned is usually a collection of properties, for example, an object that implements <see cref="T:System.ServiceModel.Channels.ISecurityCapabilities" />.</para>
|
||
</remarks>
|
||
<summary>
|
||
<attribution license="cc4" from="Microsoft" modified="false" />
|
||
<para>Gets a specified object from the <see cref="T:System.ServiceModel.Channels.BindingContext" />.</para>
|
||
</summary>
|
||
<returns>
|
||
<attribution license="cc4" from="Microsoft" modified="false" />
|
||
<para>The object of type <paramref name="T" />from the <see cref="T:System.ServiceModel.Channels.BindingContext" />, or null if the object is not found.</para>
|
||
</returns>
|
||
<param name="context">
|
||
<attribution license="cc4" from="Microsoft" modified="false" />A <see cref="T:System.ServiceModel.Channels.BindingContext" />.</param>
|
||
<typeparam name="T">
|
||
<attribution license="cc4" from="Microsoft" modified="false" />The type of the object to get.</typeparam>
|
||
</Docs>
|
||
</Member>
|
||
<Member MemberName="GetTransportTokenAssertion">
|
||
<MemberSignature Language="C#" Value="public System.Xml.XmlElement GetTransportTokenAssertion ();" />
|
||
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance class System.Xml.XmlElement GetTransportTokenAssertion() cil managed" />
|
||
<MemberType>Method</MemberType>
|
||
<AssemblyInfo>
|
||
<AssemblyVersion>4.0.0.0</AssemblyVersion>
|
||
</AssemblyInfo>
|
||
<ReturnValue>
|
||
<ReturnType>System.Xml.XmlElement</ReturnType>
|
||
</ReturnValue>
|
||
<Parameters />
|
||
<Docs>
|
||
<remarks>
|
||
<attribution license="cc4" from="Microsoft" modified="false" />
|
||
<para>This method is used to generate WSDL for the associated service.</para>
|
||
</remarks>
|
||
<summary>
|
||
<attribution license="cc4" from="Microsoft" modified="false" />
|
||
<para>Gets the <see cref="T:System.Xml.XmlElement" /> that represents the transport token used in the security binding.</para>
|
||
</summary>
|
||
<returns>
|
||
<attribution license="cc4" from="Microsoft" modified="false" />
|
||
<para>An <see cref="T:System.Xml.XmlElement" /> that represents the transport token used in the security binding.</para>
|
||
</returns>
|
||
</Docs>
|
||
</Member>
|
||
<Member MemberName="IdentityVerifier">
|
||
<MemberSignature Language="C#" Value="public System.ServiceModel.Security.IdentityVerifier IdentityVerifier { get; set; }" />
|
||
<MemberSignature Language="ILAsm" Value=".property instance class System.ServiceModel.Security.IdentityVerifier IdentityVerifier" />
|
||
<MemberType>Property</MemberType>
|
||
<AssemblyInfo>
|
||
<AssemblyVersion>4.0.0.0</AssemblyVersion>
|
||
</AssemblyInfo>
|
||
<ReturnValue>
|
||
<ReturnType>System.ServiceModel.Security.IdentityVerifier</ReturnType>
|
||
</ReturnValue>
|
||
<Docs>
|
||
<value>To be added.</value>
|
||
<remarks>To be added.</remarks>
|
||
<summary>
|
||
<attribution license="cc4" from="Microsoft" modified="false" />
|
||
<para>Gets or sets the identity verifier for this binding. </para>
|
||
</summary>
|
||
</Docs>
|
||
</Member>
|
||
<Member MemberName="RequireClientCertificate">
|
||
<MemberSignature Language="C#" Value="public bool RequireClientCertificate { get; set; }" />
|
||
<MemberSignature Language="ILAsm" Value=".property instance bool RequireClientCertificate" />
|
||
<MemberType>Property</MemberType>
|
||
<AssemblyInfo>
|
||
<AssemblyVersion>4.0.0.0</AssemblyVersion>
|
||
</AssemblyInfo>
|
||
<ReturnValue>
|
||
<ReturnType>System.Boolean</ReturnType>
|
||
</ReturnValue>
|
||
<Docs>
|
||
<value>To be added.</value>
|
||
<remarks>To be added.</remarks>
|
||
<summary>
|
||
<attribution license="cc4" from="Microsoft" modified="false" />
|
||
<para>Gets or sets a value that specifies whether a client certificate is required for this binding.</para>
|
||
</summary>
|
||
</Docs>
|
||
</Member>
|
||
<Member MemberName="System.ServiceModel.Description.IPolicyExportExtension.ExportPolicy">
|
||
<MemberSignature Language="C#" Value="void IPolicyExportExtension.ExportPolicy (System.ServiceModel.Description.MetadataExporter exporter, System.ServiceModel.Description.PolicyConversionContext context);" />
|
||
<MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance void System.ServiceModel.Description.IPolicyExportExtension.ExportPolicy(class System.ServiceModel.Description.MetadataExporter exporter, class System.ServiceModel.Description.PolicyConversionContext context) cil managed" />
|
||
<MemberType>Method</MemberType>
|
||
<AssemblyInfo>
|
||
<AssemblyVersion>4.0.0.0</AssemblyVersion>
|
||
</AssemblyInfo>
|
||
<ReturnValue>
|
||
<ReturnType>System.Void</ReturnType>
|
||
</ReturnValue>
|
||
<Parameters>
|
||
<Parameter Name="exporter" Type="System.ServiceModel.Description.MetadataExporter" />
|
||
<Parameter Name="context" Type="System.ServiceModel.Description.PolicyConversionContext" />
|
||
</Parameters>
|
||
<Docs>
|
||
<remarks>
|
||
<attribution license="cc4" from="Microsoft" modified="false" />
|
||
<para>This method writes binding-related statements into the WSDL information exposed by a particular contract and is used by indigo2 to communicate to clients the existence of this custom binding element in the binding stack.</para>
|
||
<para>This method takes two parameters: the <see cref="T:System.ServiceModel.Description.MetadataExporter" /> and <see cref="T:System.ServiceModel.Description.PolicyConversionContext" /> objects. Use the <see cref="M:System.ServiceModel.Description.PolicyConversionContext.GetBindingAssertions" />, <see cref="M:System.ServiceModel.Description.PolicyConversionContext.GetMessageBindingAssertions(System.ServiceModel.Description.MessageDescription)" />, and <see cref="M:System.ServiceModel.Description.PolicyConversionContext.GetOperationBindingAssertions(System.ServiceModel.Description.OperationDescription)" /> methods to obtain collections of policy assertions that have already been exported at various scopes. Then use this method to add your own policy assertions to the appropriate collection.</para>
|
||
<para>The <see cref="P:System.ServiceModel.Description.PolicyConversionContext.Contract" /> property exposes the <see cref="T:System.ServiceModel.Description.ContractDescription" /> for the endpoint that is being exported. This enables this method to correctly scope their exported policy assertions. For example, security attributes in code can add behaviors to the <see cref="T:System.ServiceModel.Description.ContractDescription" /> that indicate where security policy assertions should be added.</para>
|
||
<para>Once custom policy assertions are attached to the WSDL information, clients can detect and import the custom binding assertions by implementing an <see cref="T:System.ServiceModel.Description.IPolicyImportExtension" /> interface.</para>
|
||
</remarks>
|
||
<summary>
|
||
<attribution license="cc4" from="Microsoft" modified="false" />
|
||
<para>Exports a custom policy assertion about bindings.</para>
|
||
</summary>
|
||
<param name="exporter">
|
||
<attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.ServiceModel.Description.MetadataExporter" /> that you can use to modify the exporting process.</param>
|
||
<param name="context">
|
||
<attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.ServiceModel.Description.PolicyConversionContext" /> that you can use to insert your custom policy assertion.</param>
|
||
</Docs>
|
||
</Member>
|
||
</Members>
|
||
</Type> |