ben SDK yardımcı sınıflar dayanmadan Dynamics CRM WCF hizmetini aramak istediğiniz saf WCF senaryoyu uygulamaya çalışıyorum. Temel olarak, .net çerçevesinden yalnızca yerel WCF desteğini kullanarak Dynamics CRM 2011'a karşı federasyon kimlik doğrulaması uygulamak istiyorum.SDK'sız Dynamics CRM 2011 geçikmiş WCF Organizasyon servisini çağırmak mümkün mü?
Bunu yapmamın sebebi bu senaryo daha sonra açma BizTalk için liman istiyoruz olmasıdır.
başarıyla Svcutil ile vekil sınıfları oluşturulmuş, ama politika ve güvenlik iddiaların parçası yapılandırma şeması ile uyumlu değildir. SvcUtil, kodun yerine kodlamayı oluşturmayı önerir, bu da yapmaya çalıştığım şeydir. Ben federe kimlik doğrulama yeniyim ve birçok mevcut bağları arasındaki potansiyel farkları anlamakta zorlanıyorum
private static void CallWcf()
{
OrganizationServiceClient client = null;
try
{
// Login Live.com Issuer Binding
var wsHttpBinding = new WSHttpBinding();
wsHttpBinding.Security = new WSHttpSecurity();
wsHttpBinding.Security.Mode = SecurityMode.Transport;
// Endpoint Binding Elements
var securityElement = new TransportSecurityBindingElement();
securityElement.DefaultAlgorithmSuite = SecurityAlgorithmSuite.TripleDes;
securityElement.IncludeTimestamp = true;
securityElement.KeyEntropyMode = SecurityKeyEntropyMode.CombinedEntropy;
securityElement.MessageSecurityVersion = MessageSecurityVersion.WSSecurity11WSTrust13WSSecureConversation13WSSecurityPolicy12BasicSecurityProfile10;
securityElement.SecurityHeaderLayout = SecurityHeaderLayout.Strict;
var securityTokenParameters = new IssuedSecurityTokenParameters();
securityTokenParameters.InclusionMode = SecurityTokenInclusionMode.AlwaysToRecipient;
securityTokenParameters.ReferenceStyle = SecurityTokenReferenceStyle.Internal;
securityTokenParameters.RequireDerivedKeys = false;
securityTokenParameters.TokenType = null;
securityTokenParameters.KeyType = SecurityKeyType.SymmetricKey;
securityTokenParameters.KeySize = 192;
securityTokenParameters.IssuerAddress = new EndpointAddress("https://login.live.com/extSTS.srf");
securityTokenParameters.IssuerMetadataAddress = null;
securityTokenParameters.DefaultMessageSecurityVersion = null;
securityTokenParameters.IssuerBinding = wsHttpBinding;
securityElement.EndpointSupportingTokenParameters.Signed.Add(securityTokenParameters);
var textMessageEncodingElement = new TextMessageEncodingBindingElement();
textMessageEncodingElement.MaxReadPoolSize = 64;
textMessageEncodingElement.MaxWritePoolSize = 16;
textMessageEncodingElement.MessageVersion = MessageVersion.Default;
textMessageEncodingElement.WriteEncoding = System.Text.Encoding.UTF8;
textMessageEncodingElement.ReaderQuotas.MaxStringContentLength = 8192;
textMessageEncodingElement.ReaderQuotas.MaxArrayLength = 16384;
textMessageEncodingElement.ReaderQuotas.MaxBytesPerRead = 4096;
textMessageEncodingElement.ReaderQuotas.MaxNameTableCharCount = 16384;
var httpsTransportElement = new HttpsTransportBindingElement();
httpsTransportElement.ManualAddressing = false;
httpsTransportElement.AuthenticationScheme = System.Net.AuthenticationSchemes.Anonymous;
CustomBinding binding = new CustomBinding();
binding.Elements.Add(securityElement);
binding.Elements.Add(textMessageEncodingElement);
binding.Elements.Add(httpsTransportElement);
client = new OrganizationServiceClient(binding, new EndpointAddress(EndpointUri));
client.ClientCredentials.UserName.UserName = Username;
client.ClientCredentials.UserName.Password = Password;
client.Open();
var columnSet = new schemas.microsoft.com.xrm._2011.Contracts.ColumnSet();
var identifier = new Guid("fbf8240e-2c85-e011-ad55-1cc1de0878eb");
columnSet.Columns = new string[] { "name" };
var entity = client.Retrieve("account", identifier, columnSet);
}
finally
{
if (client != null)
client.Close();
}
}
, bu yüzden herhangi bir yardım için minnettar olacaktır:
çıkan kod burada bu konuda.
Bunu nasıl yaptığını öğrendiniz mi? – cheeesus
Ve hangi SDK yardımcı sınıflarını kastediyorsunuz? – cheeesus
Bunu izlemedim ve asla öğrenmedim. SDK Yardımcısı Sınıfları dediğim, CRM 2011 SDK'sı ile birlikte gönderilen çeşitli örneklerdir. –