MessageSecurityException, UsernamePasswordValidator и HttpWebRequest Проблема - PullRequest
1 голос
/ 15 января 2010

Есть ли лучший способ вернуть стандартное сообщение «Неверное имя пользователя / пароль» клиентам, которые подключаются к службе 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.

1 Ответ

2 голосов
/ 16 января 2010

Поместите его в оператор try - catch и поймайте исключение, затем передайте свое собственное сообщение в блоке catch

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...