私たちは、匿名ユーザーから任意のテキストの束を受け取り、バックエンドで何らかの処理を実行するWCF REST Webサービスを開発中です。私達はちょうど私たちが(401) Unauthorized
を取得し、既定のIISの設定を使用する場合WCF REST Service - 401 Unauthorized
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
public class MyRESTService : IMyRESTService
{
[WebInvoke(Method = "PUT", UriTemplate = "/MyRESTMethod?paramA={paramA}¶mB={paramB}")]
public Stream MyRESTMethod(string paramA, string paramB, Stream rawData)
{
//do some stuff...
}
}
:
例えば、ここでは私たちのWebサービスからの一つの方法です。しかし、多くの試行錯誤の末、実際に.svc
ファイルの「Everyone」に書き込みアクセス権を与えることで、動作させることができるとわかりました。
私の質問は、IISがこれを動作させるには.svc
ファイルへの書き込みアクセス権が必要なのはなぜですか?より良い方法があるのですか?または、このhackish(およびおそらく安全性の低い)回避策に悩まされていますか?
WTF Microsoft?
おそらく関連:
- PUT and DELETE in RESTful WCF Service cause 401 Unauthorized error
- IIS7 Post/Put/Patch/Delete WCF oData - Authentication Failure 401.3
アクセス権に
<system.web>
の内側<authentication mode="None" />
を入れて固定することができます。代わりに、認証されたユーザーにはこれらの権限が必要です。匿名アクセスの場合、これはIUSRです。 – chiccodoro