SecurityBindingElement.LocalClientSettings Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
İstemci tarafından kullanılan yerel güvenlik ayarlarına özgü bağlama özelliklerini alır.
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
Özellik Değeri
LocalClientSecuritySettings İstemci tarafından kullanılan yerel güvenlik ayarlarına özgü bağlama özelliklerini temsil eden.
Örnekler
Aşağıdaki kod, başka bir nesnede özellik ayarlamak için bu özelliğe nasıl erişeceklerini gösterir.
// 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
Açıklamalar
Ayarlar, hizmetin güvenlik ilkesinden türetilen ayarlar olmadığı için yereldir. Nesnesini alabilir ve bu bağlamanın LocalClientSecuritySettings güvenlik özelliklerini ayarlamak için kullanabilirsiniz.