1
자격 증명이 필요한 WCF 서비스에 연결하는 클라이언트에게 표준 "잘못된 사용자 이름/암호"메시지를 반환하는 더 나은 방법이 있습니까? 잘못된 사용자 이름/암호를 사용하여 WCF 서비스에 연결할 때 예외가 발생하는 다음 코드가 있습니다. 이상적으로MessageSecurityException, UsernamePasswordValidator 및 HttpWebRequest 문제
난 그냥 단순한 문자열을 다시 싶지만 나쁜 사용자 이름을 알리기 위해 UsernamePasswordValidator를 얻을 수는 HttpWebRequest를의하는 GetResponse 방식에서 클라이언트 측에 예외를 일으키는 오류 예외 또는 SecurityTokenException, 하나를 던지는 필요 .
FileInfo file = new FileInfo("Request.xml");
string payload = file.OpenText().ReadToEnd();
HttpWebRequest request = HttpWebRequest.Create(URL) as HttpWebRequest;
request.ContentType = "text/xml";
request.ContentLength = payload.Length;
request.MediaType = "utf-8";
request.Method = "POST";
StreamWriter writer = new StreamWriter(request.GetRequestStream());
writer.Write(payload);
writer.Flush();
writer.Close();
Console.WriteLine("Awaiting Response...");
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
StreamReader reader = new StreamReader(response.GetResponseStream());
Console.WriteLine(reader.ReadToEnd());
Console.ReadKey(true);
내가 원하는 이유는 .NET을 사용하지 않는 클라이언트가 서비스에 부딪히게됩니다.
는 표준 SOAP 결함으로 제공되는 catch 블록에 당신의 자신의 메시지를 전달하기 때문에 클라이언트는 이것을 기대하고 필요에 따라 처리 할 수 있습니다. FaultException은 .NET 클라이언트 및 서비스에서 사용하기위한 SOAP 오류에 대한 .NET 래퍼와 같다고 생각합니다. 이것이 사실이라면 FaultException을 고집하는 것이 좋습니다. –
"잘못된 사용자 이름/암호"는 내가 아는 한 표준이 아닙니다. –