私は ADFS を使用しており、サーバーの URL はhttps://domainname/adfs/ls です。
次のコード スニペットを使用してソリューションに asmx ファイルを追加することにより、WSTrust トリックを使用して .net アプリケーション (フレームワーク 4.6) でこれを使用した場合
var stsEndpoint = ConfigurationManager.AppSettings["EndPoint"];
var relayPartyUri = ConfigurationManager.AppSettings["RelayPartyUri"];
EndpointAddress epoint = new EndpointAddress(stsEndpoint);
var factory =
new WSTrustChannelFactory(new UserNameWSTrustBinding(SecurityMode.TransportWithMessageCredential),
epoint)
{ TrustVersion = TrustVersion.WSTrust13 };
if (factory.Credentials != null)
{
factory.Credentials.UserName.UserName = @"systemdomain\" + userName;
factory.Credentials.UserName.Password = password;
}
var rst = new RequestSecurityToken
{
RequestType = WSTrust13Constants.RequestTypes.Issue,
AppliesTo = new EndpointReference(relayPartyUri),
KeyType = WSTrust13Constants.KeyTypes.Bearer
};
var channel = factory.CreateChannel();
var token = channel.Issue(rst);
var genericToken = token as GenericXmlSecurityToken;
アプリケーションを実行するたびに、行に次のエラーメッセージが表示されます
var token = channel.Issue(rst);
コンテンツ タイプ text/html。応答メッセージの charset=utf-8 がバインディングのコンテンツ タイプ (application/soap+xml; charset=utf-8) と一致しません。カスタム エンコーダーを使用する場合は、IsContentTypeSupported メソッドが適切に実装されていることを確認してください。応答の最初の 1024 バイトは次のとおりです。
スタックトレース:
サーバー スタック トレース: System.ServiceModel.Channels.HttpChannelUtilities.ValidateRequestReplyResponse(HttpWebRequest 要求、HttpWebResponse 応答、HttpChannelFactory で)
1 factory, WebException responseException, ChannelBinding channelBinding) at System.ServiceModel.Channels.HttpChannelFactory
1.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan タイムアウト) System.ServiceModel.Channels.RequestChannel.Request(メッセージ メッセージ、TimeSpan タイムアウト) で System.ServiceModel.Channels.SecurityChannelFactory`1.SecurityRequestChannel.Request(メッセージ メッセージ、TimeSpan タイムアウト) でSystem.ServiceModel.Dispatcher.RequestChannelBinder.Request (メッセージ メッセージ、TimeSpan タイムアウト) でSystem.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall、ProxyOperationRuntime 操作) System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage メッセージ) で [0] で再スローされた例外: System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage( IMessage reqMsg、System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) の IMessage retMsg) System.ServiceModel.Security.IWSTrustContract.Issue(メッセージ メッセージ) の System.ServiceModel.Security.WSTrustChannel.Issue(RequestSecurityToken rst, RequestSecurityTokenResponse& rstr) at System.ServiceModel.Security.WSTrustChannel.Issue(RequestSecurityToken rst) at methodname(parameters) 上記の行でエラーがスローされますエラーをスローする上記の行の methodname(parameters) で Issue(RequestSecurityToken rst)エラーをスローする上記の行の methodname(parameters) で Issue(RequestSecurityToken rst)
このエラーを確認する場所がわかりません。サーバー アクセス adfs url が IIS からホストされていません。
私を助けてください!前もって感謝します