【问题标题】:Httpmodule resend/ recreate requestHttpmodule重新发送/重新创建请求
【发布时间】:2012-02-16 20:52:47
【问题描述】:

我创建了一个 httpmodule,它获取用户 ip 信息并根据他们的 IP 将凭据附加到标头。它会在每个请求中执行此操作。我想监听 401 状态响应,然后运行 ​​ip 查找并重新发送请求。

我已经准备好了所有部件,我可以捕获 401 错误,并将凭据附加到标头,但我无法弄清楚如何使用新标头重新发送请求。

可能转移或重写?

【问题讨论】:

  • 我不是 httpmodules 方面的专家,但我怀疑你能做到你所解释的。如果您正在捕获响应,则该请求显然已被处理。您的模块需要预先知道请求是否会导致 401,换句话说,我认为您需要对每个请求进行查找。

标签: c# httpmodule


【解决方案1】:

我不会详细说明您为什么选择这样的策略,因为这听起来不太优雅。无论如何,鉴于您的要求,我会在响应中设置两个 cookie,使用身份验证到期日期和哈希值来验证到期日期。然后将响应更改为 301 重定向到相同的 url。下次请求到达时,我已经设置了 cookie,您可以识别/验证并附加凭证标头。 Cookie 示例是:

Set-Cookie: AuthExpiry=20/02/2012T12:30:12
Set-Cookie: AuthHash=38D67A30F9453E6A9A025A2395AC07EA198383A5

通过连接 GetSHA(AuthExpiry+yourSecretPhrase) 生成 AuthHash

【讨论】:

    猜你喜欢
    • 2015-07-29
    • 2020-11-09
    • 1970-01-01
    • 2013-12-07
    • 2012-11-29
    • 1970-01-01
    • 2019-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多