Возвратитесь 401 из службы WCF

Как я могу возвратить HTTP 401 из службы WCF?

5
задан Nevin Mathai 28 December 2009 в 07:00
поделиться

3 ответа

Если вы программируете REST-сервис, то это можно сделать так:

private IWebOperationContext context = new WebOperationContextWrapper(WebOperationContext.Current); // Get the context

context.OutgoingResponse.StatusCode = HttpStatusCode.Unauthorized; // Set the 401
5
ответ дан 13 December 2019 в 22:09
поделиться

Если вы используете фабрику WebServiceHost2 из комплекта WCF REST Starter Kit, вы можете также бросить специфическое WebProtocolException и указать код возврата HTTP:

alt text
(источник: robbagby. com)

alt text
(source: robbagby.com)

alt text
(source: robbagby. com)

Также существует HttpStatusCode.Unauthorized, который соответствует 401 коду статуса.

Смотрите отличный пост в блоге Rob Bagby Effective Error Handling with WCF REST для более детального ознакомления с различными способами указания кодов возврата HTTP. (скриншоты взяты из записи блога Роба - он заслуживает всяческих похвал за это)

.
1
ответ дан 13 December 2019 в 22:09
поделиться

В зависимости от того, когда необходимо выполнить проверку авторизации, это можно сделать в HttpModule HttpModule, используя что-то вроде:

HttpContext context = HttpContext.Current;
context.Response.StatusCode = 401;
context.Response.End();
0
ответ дан 13 December 2019 в 22:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: