【问题标题】:Add or Remove response header based on the user authorization or request url根据用户授权或请求 url 添加或删除响应头
【发布时间】:2021-04-08 01:20:51
【问题描述】:

我需要根据用户授权在页面中添加和删除响应标头,例如,如果当前用户是匿名的,那么必须实现最安全的标头,但是如果用户以管理员身份登录(例如例如)他的安全标头应该较少受到限制,因为它会阻止某些功能。

有没有办法在 IIS 中执行此操作或使用 onpresendrequestheaders

请多多指教,谢谢

【问题讨论】:

  • "onpresendrequestheaders",所以您使用的是 ASP.NET 4.x?请编辑您的问题以包含此类关键信息。您需要编写一些 C# 代码来处理 ASP.NET 方面的问题。

标签: iis response-headers


【解决方案1】:

您可以尝试使用 IIS 出站规则将响应头重写为空白:

 <system.webServer>
    <rewrite>
      <outboundRules>
        <rule name="Set custom HTTP response header">
          <match serverVariable="RESPONSE_var" pattern=".*" />
          <conditions>
            <add input="{REQUEST_URI}" pattern="\folder\filename$" />
          </conditions>
          <action type="Rewrite" value=""/>
        </rule>
      </outboundRules>
    </rewrite>
  </system.webServer>

如果您想使用 PreSendRequestHeaders,您可以使用以下代码:

void OnPreSendRequestHeaders(object sender, EventArgs e)
    {
        if (HttpContext.Current.Request.Url.AbsolutePath.ToString().Contains("filename"))
        {
            Response.Headers.Remove("variablename");
        }
    }

参考链接: https://docs.microsoft.com/en-us/dotnet/api/system.web.httpapplication.presendrequestheaders?view=netframework-4.8

【讨论】:

  • 谢谢您的回答。有没有办法验证用户是否登录?
  • @AJaz 在我看来无法通过使用 iis URL 重写模块来检查授权用户,因为它在身份验证模块之前执行。
猜你喜欢
  • 1970-01-01
  • 2015-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多