Есть ли лучший способ вернуть стандартное сообщение «Неверное имя пользователя / пароль» клиентам, которые подключаются к службе WCF, требующей учетных данных? У меня есть следующий код, который вызывает исключение при подключении к моей службе WCF с неверными именами пользователей и паролями.
В идеале я хотел бы вернуть только простую строку, но чтобы получить UsernamePasswordValidator для сигнализации о неправильных именах пользователей, необходимо выдать FaultException или SecurityTokenException , что вызывает исключение на клиенте сторона метода GetResponse HttpWebRequest.
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.