画像アクセス制限にAuthorizeImageイベントハンドラーを追加しました。ユーザー名と認証ステータスを確認しようとしたときに、次のことに気づきました。
以下は例外にはなりませんが、それを破るようです。認証されているかどうかに関係なく、画像が見つからない場合のデフォルトのアイコンが表示されます。this.User=同じ結果をテストしました。HttpContext.Current.User=同じ結果
Config.Current.Pipeline.AuthorizeImage += delegate(IHttpModule sender, HttpContext context, IUrlAuthorizationEventArgs e)
{
if (context.User.Identity.IsAuthenticated) { context.Response.Redirect("http://db2.stb00.s-msn.com/i/AF/263B63C5E656379CEE93E7A8692EC7.gif"); }
};
以下は問題なく動作します(this.UserとHttpCOntext.Current.Userも同様です)
Config.Current.Pipeline.AuthorizeImage += delegate(IHttpModule sender, HttpContext context, IUrlAuthorizationEventArgs e)
{
context.Response.Redirect("http://db2.stb00.s-msn.com/i/AF/263B63C5E656379CEE93E7A8692EC7.gif");
};
これは常にリダイレクトします
Config.Current.Pipeline.AuthorizeImage += delegate(IHttpModule sender, HttpContext context, IUrlAuthorizationEventArgs e)
{
if (context.User == null)
context.Response.Redirect("http://db2.stb00.s-msn.com/i/AF/263B63C5E656379CEE93E7A8692EC7.gif");
};
Application_Startでテストを開始しましたが、実際にはApplication_PostAuthenticateRequestも試しました。結果は同じですが。カスタムコードを介して認証しますが、標準のフォーム認証を使用してCookieを設定します。[承認]はアプリケーションで正常に機能します。ここで何がうまくいかなかったのかについての提案はありますか?