根据用户授权或请求url添加或删除响应头

问题描述

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

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

请指教,谢谢

解决方法

您可以尝试使用 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