5

WCF サービスから HTTP 401 を返すにはどうすればよいですか?

4

4 に答える 4

6

REST サービスをプログラミングしている場合は、次の方法で実行できます。

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

context.OutgoingResponse.StatusCode = HttpStatusCode.Unauthorized; // Set the 401
于 2009-12-28T08:16:06.473 に答える
6
throw new WebFaultException(System.Net.HttpStatusCode.Unauthorized);

ノート:

MSDN: WCF REST エンドポイント (WebHttpBinding および WebHttpBehavior または WebScriptEnablingBehavior) を使用すると、応答の HTTP ステータス コードがそれに応じて設定されます。ただし、WebFaultException は非 REST エンドポイントで使用でき、通常の FaultException のように動作します。

于 2011-12-08T00:40:11.553 に答える
1

WCF REST スターター キットの WebServiceHost2 ファクトリを使用している場合は、特定のものをスローWebProtocolExceptionして、HTTP リターン コードを指定することもできます。

代替テキスト
(ソース: robbagby.com )

代替テキスト
(ソース: robbagby.com )

代替テキスト
(ソース: robbagby.com )

HttpStatusCode.Unauthorized401 ステータス コードに対応するもあります。

HTTP リターン コードを指定するさまざまな方法の詳細については、Rob Bagby の優れたブログ記事「Effective Error Handling with WCF REST 」を参照してください。(スクリーンショットは、Rob のブログ投稿からのものです。これについては、Rob のすべての功績に値します。)

于 2009-12-28T08:41:36.560 に答える
0

いつ認可チェックを行う必要があるかに応じてHttpModule、次のようなものを使用して行うことができます。

HttpContext context = HttpContext.Current;
context.Response.StatusCode = 401;
context.Response.End();
于 2009-12-28T07:16:32.927 に答える