3
我正在c#中創建一個Windows 8客戶端應用程序。此應用程序將使用SAP的odata服務。對於身份驗證,我需要由ADFS發佈的SAML令牌。是否有任何方法使用Windows憑據從ADFS獲取SAML令牌?使用Windows憑據從ADFS獲取SAML令牌
我正在c#中創建一個Windows 8客戶端應用程序。此應用程序將使用SAP的odata服務。對於身份驗證,我需要由ADFS發佈的SAML令牌。是否有任何方法使用Windows憑據從ADFS獲取SAML令牌?使用Windows憑據從ADFS獲取SAML令牌
您可以使用下面的代碼獲取SAML令牌。
var factory = new WSTrustChannelFactory(new Microsoft.IdentityModel.Protocols.WSTrust.Bindings.UserNameWSTrustBinding(SecurityMode.TransportWithMessageCredential), adfsEndpoint);
factory.Credentials.UserName.UserName = "username";
factory.Credentials.UserName.Password = "********";
factory.Credentials.ServiceCertificate.Authentication.CertificateValidationMode = X509CertificateValidationMode.None;
factory.TrustVersion = TrustVersion.WSTrust13;
WSTrustChannel channel = null;
try
{
var rst = new RequestSecurityToken
{
RequestType = WSTrust13Constants.RequestTypes.Issue,
AppliesTo = new EndpointAddress("https://yourserviceendpoint.com/"),
KeyType = KeyTypes.Bearer,
};
channel = (WSTrustChannel)factory.CreateChannel();
return channel.Issue(rst);
}
catch (Exception e)
{
return null;
}
是否有理由忽略異常? –
WSTrustChannelFactory在地鐵應用程序中不可用。 – user1734463