에 연결 :Tridion 2011 핵심 서비스 : 나는 다음과 같은 오류가 핵심 서비스에 연결을 시도하는 동안 수 없음은 SSO 환경
The HTTP request was forbidden with client authentication scheme 'Anonymous'
Tridion 환경은 SiteMinder에서의 SSO 구성되어 있습니다.
public static ICoreService2010 GetTridionClient()
{
var binding = new BasicHttpBinding()
{
Name = "BasicHttpBinding_TridionCoreService",
CloseTimeout = new TimeSpan(0, 1, 0),
OpenTimeout = new TimeSpan(0, 1, 0),
ReceiveTimeout = new TimeSpan(0, 10, 0),
SendTimeout = new TimeSpan(0, 1, 0),
AllowCookies = false,
BypassProxyOnLocal = false,
HostNameComparisonMode = HostNameComparisonMode.StrongWildcard,
MaxBufferSize = 4194304, // 4MB
MaxBufferPoolSize = 4194304,
MaxReceivedMessageSize = 4194304,
MessageEncoding = WSMessageEncoding.Text,
TextEncoding = System.Text.Encoding.UTF8,
TransferMode = TransferMode.Buffered,
UseDefaultWebProxy = true,
ReaderQuotas = new System.Xml.XmlDictionaryReaderQuotas()
{
MaxDepth = 32,
MaxStringContentLength = 4194304, // 4MB
MaxArrayLength = 4194304,
MaxBytesPerRead = 4194304,
MaxNameTableCharCount = 16384
},
Security = new BasicHttpSecurity()
{
Mode = BasicHttpSecurityMode.TransportCredentialOnly,
Transport = new HttpTransportSecurity()
{
ClientCredentialType = HttpClientCredentialType.None,
},
Message = new BasicHttpMessageSecurity()
{
ClientCredentialType = BasicHttpMessageCredentialType.UserName
}
}
};
string hostname = ConfigurationManager.AppSettings["TridionUrl"];
string username = ConfigurationManager.AppSettings["TridionUsername"];
hostname = string.Format("{0}{1}{2}",
hostname.StartsWith("http") ? "" : "http://",
hostname,
hostname.EndsWith("/") ? "" : "/");
var endpoint = new EndpointAddress(hostname +
"/webservices/CoreService.svc/basicHttp_2010");
var factory = new ChannelFactory<ICoreService2010>(binding, endpoint);
factory.Credentials.UserName.UserName = username;
return factory.CreateChannel();
}
아무도 윈도우 이외의 인증 유형과 핵심 서비스와 상호 작용의 경험이 있습니까
:여기 내 코드입니까?
UPDATE :
지금 오류를 얻을 : 무엇 clientCredentialType은 바인딩에 대한 /webservices/web.config 사용되어야한다
The HTTP request was forbidden with client authentication scheme 'Basic'.
?
/webservies/web.config에서 SsoAgentHttpModule의 주석을 제거하면 webservice에서 500 오류가 발생하므로 SDL에서는이 주석을 남겨 두라고했습니다.
이 모듈은 CoreService가 인증 체계 'Basic'으로 인증하는 데 필요합니까?
루트 구성에서 주석 처리를 제거 했으므로 /webservices/web.config의 SsoAgentHttpModule을 주석 처리 할 필요가 없으며 전체 웹 사이트에 적용됩니다. 적절한 (SSO URL)에 연결 하시겠습니까? –