为了安全起见,我要求我不应该披露服务器,asp.net版本等响应标头。
如何在为WCF服务进行调用时限制这些标头。
我已经尝试过以下配置设置但适用于aspx页面调用,但不适用于WCF服务调用。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<remove name="Server" />
<remove name="X-Powered-By" />
<remove name="X-AspNet-Version" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>
谢谢, Mahantesh M. B。
答案 0 :(得分:0)
您可以进入IIS并选择运行webservice的站点,在IIS部分中有一个名为HTTP Response Headers的按钮,单击它并删除标题
根据您的评论,您可以尝试添加消息检查器
public class RemoveHeaders: IDispatchMessageInspector
{
public object AfterReceiveRequest(ref Message request,
IClientChannel channel, InstanceContext instanceContext)
{
return null;
}
public void BeforeSendReply(ref Message reply, object correlationState)
{
var httpCtx = HttpContext.Current;
if (httpCtx != null)
{
httpCtx.Response.Headers.Remove(HttpResponseHeader.Server.ToString());
}
}
}