我刚刚阅读有关为ASP.NET 4.0和IIS7实现自己的HTTP处理程序的内容。这看起来很酷。我想要对ZIP文件进行特殊处理,似乎HTTP处理程序是完美的解决方案。
然而,给我带来麻烦的是处理程序必须在一个单独的程序集中。那么如何从这个程序集中访问我的应用程序的其余部分呢?
具体来说,我想确定用户是否经过身份验证,如果不是,则将其重定向到登录页面。但是我的处理程序将无法使用User.Identity.IsAuthenticated等。
(是的,我知道有很多方法可以在没有HTTP处理程序的情况下解决这个问题,但它们似乎不适合我的特定需求。)
答案 0 :(得分:1)
我的处理程序将无法使用User.Identity.IsAuthenticated等。
ProcessRequest方法为您提供当前的HTTP上下文,您可以从中确定用户是否经过身份验证:
public void ProcessRequest(HttpContext context)
{
if (!context.User.Identity.IsAuthenticated)
{
// the user is not authenticated
}
...
}