次のコントローラーを備えたMVC4 Webアプリがあります
[Authorize]
public class AccountController : BaseController
{
[AllowAnonymous]
public ActionResult SignInRegister(LoginModel loginModel, string returnUrl)
{
//some implementation
}
//other secured actions
}
これは、ローカルで実行すると期待どおりに機能しますが、無料の Azure Web サイトにデプロイするとすぐに、次401
のメッセージを含むエラー コードが表示されます。You do not have permission to view this directory or page.
属性を削除して[Authorize]
再デプロイすると期待どおりに機能し、再度追加して再デプロイすると問題が再発します。
完全修飾クラス名を試してみましたSystem.Web.Mvc.Authorize
がSystem.Web.Mvc.AllowAnonymous
、同じ結果が得られました。
アプリは .NET 4.5 を使用しており、Azure Web サイトも 4.5 を使用するように構成されています。
更新:
でBaseController
装飾されていない部分ビューとしてヘッダーを返すアクションがあります[AllowAnonymous]
。ローカルではヘッダーなしでページが表示されましたが、Azure Web サイトでは応答が途切れ、上記のエラー メッセージのみが返されました。意図的に調べるまで、ヘッダーが欠落していることに気づきませんでした。
なぜ Azure Web サイトが応答を上書きするのでしょうか?