SecurityBindingElement.LocalClientSettings プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
クライアントが使用するローカル セキュリティ設定に固有のバインド プロパティを取得します。
public:
property System::ServiceModel::Channels::LocalClientSecuritySettings ^ LocalClientSettings { System::ServiceModel::Channels::LocalClientSecuritySettings ^ get(); };
public System.ServiceModel.Channels.LocalClientSecuritySettings LocalClientSettings { get; }
member this.LocalClientSettings : System.ServiceModel.Channels.LocalClientSecuritySettings
Public ReadOnly Property LocalClientSettings As LocalClientSecuritySettings
プロパティ値
クライアントが使用するローカル セキュリティ設定に固有のバインド プロパティを表す LocalClientSecuritySettings。
例
このプロパティにアクセスし、別のオブジェクトのプロパティを設定する方法を次のコードに示します。
// This method returns a custom binding created from a WSHttpBinding. Alter the method
// to use the appropriate binding for your service, with the appropriate settings.
public static Binding CreateCustomBinding(TimeSpan clockSkew)
{
WSHttpBinding standardBinding = new WSHttpBinding(SecurityMode.Message, true);
CustomBinding myCustomBinding = new CustomBinding(standardBinding);
SymmetricSecurityBindingElement security =
myCustomBinding.Elements.Find<SymmetricSecurityBindingElement>();
security.LocalClientSettings.MaxClockSkew = clockSkew;
security.LocalServiceSettings.MaxClockSkew = clockSkew;
// Get the System.ServiceModel.Security.Tokens.SecureConversationSecurityTokenParameters
SecureConversationSecurityTokenParameters secureTokenParams =
(SecureConversationSecurityTokenParameters)security.ProtectionTokenParameters;
// From the collection, get the bootstrap element.
SecurityBindingElement bootstrap = secureTokenParams.BootstrapSecurityBindingElement;
// Set the MaxClockSkew on the bootstrap element.
bootstrap.LocalClientSettings.MaxClockSkew = clockSkew;
bootstrap.LocalServiceSettings.MaxClockSkew = clockSkew;
return myCustomBinding;
}
private void Run()
{
// Create a custom binding using the method defined above. The MaxClockSkew is set to 30 minutes.
Binding customBinding= CreateCustomBinding(TimeSpan.FromMinutes(30));
// Create a ServiceHost instance, and add a metadata endpoint.
// NOTE When using Visual Studio, you must run as administrator.
Uri baseUri = new Uri("http://localhost:1008/");
ServiceHost sh = new ServiceHost(typeof(Calculator), baseUri);
// Optional. Add a metadata endpoint. The method is defined below.
AddMetadataEndpoint(ref sh);
// Add an endpoint using the binding, and open the service.
sh.AddServiceEndpoint(typeof(ICalculator), customBinding, "myCalculator");
sh.Open();
Console.WriteLine("Listening...");
Console.ReadLine();
}
private void AddMetadataEndpoint(ref ServiceHost sh)
{
Uri mex = new Uri(@"http://localhost:1001/metadata/");
ServiceMetadataBehavior sm = new ServiceMetadataBehavior();
sm.HttpGetEnabled = true;
sm.HttpGetUrl = mex;
sh.Description.Behaviors.Add(sm);
}
' This method returns a custom binding created from a WSHttpBinding. Alter the method
' to use the appropriate binding for your service, with the appropriate settings.
Public Shared Function CreateCustomBinding(ByVal clockSkew As TimeSpan) As Binding
Dim standardBinding As WSHttpBinding = New WSHttpBinding(SecurityMode.Message, True)
Dim myCustomBinding As CustomBinding = New CustomBinding(standardBinding)
Dim security As SymmetricSecurityBindingElement = _
myCustomBinding.Elements.Find(Of SymmetricSecurityBindingElement)()
security.LocalClientSettings.MaxClockSkew = clockSkew
security.LocalServiceSettings.MaxClockSkew = clockSkew
' Get the System.ServiceModel.Security.Tokens.SecureConversationSecurityTokenParameters
Dim secureTokenParams As SecureConversationSecurityTokenParameters = _
CType(security.ProtectionTokenParameters, SecureConversationSecurityTokenParameters)
' From the collection, get the bootstrap element.
Dim bootstrap As SecurityBindingElement = secureTokenParams.BootstrapSecurityBindingElement
' Set the MaxClockSkew on the bootstrap element.
bootstrap.LocalClientSettings.MaxClockSkew = clockSkew
bootstrap.LocalServiceSettings.MaxClockSkew = clockSkew
Return myCustomBinding
End Function
Private Sub Run()
' Create a custom binding using the method defined above. The MaxClockSkew is set to 30 minutes.
Dim customBinding As Binding = CreateCustomBinding(TimeSpan.FromMinutes(30))
' Create a ServiceHost instance, and add a metadata endpoint.
' NOTE When using Visual Studio, you must run as administrator.
Dim baseUri As New Uri("http://localhost:1008/")
Dim sh As New ServiceHost(GetType(Calculator), baseUri)
' Optional. Add a metadata endpoint. The method is defined below.
AddMetadataEndpoint(sh)
' Add an endpoint using the binding, and open the service.
sh.AddServiceEndpoint(GetType(ICalculator), customBinding, "myCalculator")
sh.Open()
Console.WriteLine("Listening...")
Console.ReadLine()
End Sub
Private Sub AddMetadataEndpoint(ByRef sh As ServiceHost)
Dim mex As New Uri("http://localhost:1011/metadata/")
Dim sm As New ServiceMetadataBehavior()
sm.HttpGetEnabled = True
sm.HttpGetUrl = mex
sh.Description.Behaviors.Add(sm)
End Sub
注釈
設定は、サービスのセキュリティ ポリシーから派生した設定ではないという意味でローカルです。 取得した LocalClientSecuritySettings オブジェクトを使用して、このバインドのセキュリティ プロパティを設定できます。