从单独的 HTTP 处理程序访问表单身份验证

发布于 2024-10-09 16:17:22 字数 327 浏览 5 评论 0原文

我正在阅读有关为 ASP.NET 4.0 和 IIS7 实现我自己的 HTTP 处理程序的内容。这看起来真的很酷。我想要对 ZIP 文件进行特殊处理,HTTP 处理程序似乎是完美的解决方案。

然而,给我带来麻烦的是处理程序必须位于单独的程序集中。那么我如何从这个程序集中访问应用程序的其余部分呢?

具体来说,我想确定用户是否已通过身份验证,如果未通过身份验证,则将其重定向到登录页面。但是 User.Identity.IsAuthenticated 等将无法从我的处理程序中获得。

(是的,我知道有一些方法可以在没有 HTTP 处理程序的情况下解决这个问题,但它们似乎不适合我的特定需求。)

I'm just reading about implementing my own HTTP handler for ASP.NET 4.0 and IIS7. This looks really cool. I want special processing for ZIP files and it seems like an HTTP handler is the perfect solution.

However, what's giving me trouble is that the handler must be in a separate assembly. So how can I access the rest of my application from this assembly?

Specifically, I'd like to determine if the user is authenticated and redirect them to the login page if they are not. But User.Identity.IsAuthenticated, etc. will not be available from my handler.

(Yes, I know there are ways to approach this without an HTTP handler but they don't seem appropriate for my specific needs.)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

街角卖回忆 2024-10-16 16:17:22

User.Identity.IsAuthenticated 等将无法从我的处理程序中获得。

ProcessRequest 方法为您提供当前的 HTTP 上下文您可以从中确定用户是否已通过身份验证:

public void ProcessRequest(HttpContext context)
{
    if (!context.User.Identity.IsAuthenticated)
    {
        // the user is not authenticated
    }
    ...
}

User.Identity.IsAuthenticated, etc. will not be available from my handler.

The ProcessRequest method gives you the current HTTP context from which you could determine if the user is authenticated:

public void ProcessRequest(HttpContext context)
{
    if (!context.User.Identity.IsAuthenticated)
    {
        // the user is not authenticated
    }
    ...
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文