Meta Veri İçeri Aktarma
WWSAPI, uç noktayla iletişim kurmak için kullanılabilecek bilgileri ayıklama amacıyla bir uç noktadan WSDL ve İlke işlemek için kullanılabilecek API öğeleri içerir. Bu API'ler genellikle uç nokta tarafından desteklenen iletişim protokolü henüz bilinmediğinde kullanılır.
Meta verileri işlemek için aşağıdaki sırayı kullanın:
WsCreateMetadata // create a metadata object
while there are metadata documents to add
{
// retrieve the metadata document from it's location
// (download, read from file, etc)
// add the document to the metadata object
WsReadMetadata
// optionally query the metadata object for any missing documents
WsGetMissingMetadataDocumentAddress?
}
// get the endpoints from the metadata object
WsGetMetadataEndpoints
for each endpoint
{
// examine the endpoint information to see if
// the endpoint is relevant for the particular scenario
if the endpoint is relevant
{
// get the policy object from the endpoint
// get the number of policy alternatives in the policy
WsGetPolicyAlternativeCount
for each policy alternative
{
// construct a policy constraints structure that specifies
// what policy is acceptable and what information to extract
// from the policy
// see if the policy alternative matches the constraints
WsMatchPolicyAlternative
// if there is a match, then use it
// if there is not a match, then it is also possible to
// try with a different constraint structure
}
}
}
// If reusing the metadata object for a different set of documents
WsResetMetadata? // reset metadata object, which removes all documents
WsFreeMetadata // free the metadata object
WSDL ve WS-Policy onaylarının API'ye nasıl karşılık olduğu hakkında bilgi için Meta Veri Eşleme konusuna bakın.
Güvenlik
İndirilen meta veriler yalnızca indirmek için kullanılan adres kadar iyidir. Bir uygulama, adrese güvendiğinden emin olmalıdır. Ayrıca bir uygulama, meta verilerle oynanmasına izin vermeyen meta veri belgelerini indirmek için bir güvenlik protokolü kullandığından emin olmalıdır.
Bir uygulama, meta veriler tarafından kullanıma sunulan hizmetlerin adreslerini incelemelidir. Varsayılan olarak, çalışma zamanı hizmetin ana bilgisayar adının meta verileri indirmek için kullanılan özgün URL ile eşleşmesini sağlar, ancak uygulama ek denetimler yapmak isteyebilir. Uygulama, WS_METADATA_PROPERTY_VERIFY_HOST_NAMES özelliğinin üzerine yazarak konak adı doğrulamasını devre dışı bırakabilir. Varsayılan olarak yapılan ana bilgisayar adı denetimi devre dışı bırakılırsa, uygulamanın kendisini başka bir şekilde güvenmediği farklı bir tarafın adresini içeren meta veri belgelerine karşı koruması gerekir.
Varsayılan olarak, meta verileri seri durumdan çıkarmak ve işlemek için meta veri çalışma zamanı tarafından kullanılan en fazla bellek miktarı 256k ve eklenebilen belge sayısı üst sınırı 32'dir. Bu varsayılan değerlerin üzerine WS_METADATA_PROPERTY_HEAP_REQUESTED_SIZE ve WS_METADATA_PROPERTY_MAX_DOCUMENTS özellikleri yazılabilir. Bu sınırlar, indirme miktarını sınırlamak ve meta verileri biriktirmek için ayrılan bellek miktarını sınırlamak için tasarlanmıştır. Bu değerlerin artırılması aşırı bellek kullanımına, CPU kullanımına veya ağ bant genişliği tüketimine yol açabilir. Sözlük dizelerinin ikili biçimde genişletilmesi nedeniyle, küçük bir iletinin çok daha büyük seri durumdan çıkarılmış bir forma yol açabileceğini, bu nedenle ikili biçimi kullanırken meta veri bellek ayırmayı sınırlamak için küçük iletilere güvenmenin yeterli olmadığını unutmayın.
Varsayılan olarak, ilke alternatiflerinin en fazla sayısı 32'dir, ancak WS_POLICY_PROPERTY_MAX_ALTERNATIVES özelliği tarafından üzerine yazılabilir. Bir uygulama eşleşme bulmak için her alternatifte döngü oluşturursa, eşleşmeyi bulmadan önce tüm alternatifleri araması gerekebilir. En fazla alternatif sayısını artırmak aşırı CPU kullanımına neden olabilir.
Aşağıdaki numaralandırmalar meta veri içeri aktarma işleminin bir parçasıdır:
- WS_METADATA_PROPERTY_ID
- WS_METADATA_STATE
- WS_POLICY_EXTENSION_TYPE
- WS_POLICY_PROPERTY_ID
- WS_POLICY_STATE
- WS_SECURITY_BINDING_CONSTRAINT_TYPE
Aşağıdaki işlevler meta veri içeri aktarma işleminin bir parçasıdır:
- WsCreateMetadata
- WsFreeMetadata
- WsGetMetadataEndpoints
- WsGetMetadataProperty
- WsGetMissingMetadataDocumentAddress
- WsGetPolicyAlternativeCount
- WsGetPolicyProperty
- WsMatchPolicyAlternative
- WsReadMetadata
- WsResetMetadata
Aşağıdaki tanıtıcılar meta veri içeri aktarma işleminin bir parçasıdır:
Aşağıdaki yapılar meta veri içeri aktarma işleminin bir parçasıdır:
- WS_CERT_MESSAGE_SECURITY_BINDING_CONSTRAINT
- WS_CHANNEL_PROPERTY_CONSTRAINT
- WS_ENDPOINT_POLICY_EXTENSION
- WS_HTTP_HEADER_AUTH_SECURITY_BINDING_CONSTRAINT
- WS_ISSUED_TOKEN_MESSAGE_SECURITY_BINDING_CONSTRAINT
- WS_KERBEROS_APREQ_MESSAGE_SECURITY_BINDING_CONSTRAINT
- WS_METADATA_ENDPOINT
- WS_METADATA_ENDPOINTS
- WS_METADATA_PROPERTY
- WS_POLICY_CONSTRAINTS
- WS_POLICY_EXTENSION
- WS_POLICY_PROPERTIES
- WS_POLICY_PROPERTY
- WS_REQUEST_SECURITY_TOKEN_PROPERTY_CONSTRAINT
- WS_SECURITY_BINDING_CONSTRAINT
- WS_SECURITY_BINDING_PROPERTY_CONSTRAINT
- WS_SECURITY_CONSTRAINTS
- WS_SECURITY_CONTEXT_MESSAGE_SECURITY_BINDING_CONSTRAINT
- WS_SECURITY_PROPERTY_CONSTRAINT
- WS_SSL_TRANSPORT_SECURITY_BINDING_CONSTRAINT
- WS_TCP_SSPI_TRANSPORT_SECURITY_BINDING_CONSTRAINT
- WS_USERNAME_MESSAGE_SECURITY_BINDING_CONSTRAINT