添加了一个 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。 [授权] 在应用程序中运行良好。对这里可能出什么问题有什么建议吗?