আমার বর্তমান প্রকল্পটির "কঠোর" চক্রটি সবেমাত্র পেরিয়ে গিয়েছিলাম - আমি যে পদ্ধতি নিয়েছিলাম সে সম্পর্কে আমি ব্লগ করেছি, যার মধ্যে নিম্নলিখিত শিরোনামগুলি সরিয়ে ফেলার জন্য একটি এইচটিটিপি মডেল রয়েছে :
সার্ভার,
এক্স-অ্যাস্পনেট-সংস্করণ,
এক্স-অ্যাসপনেট এমভিসি-সংস্করণ, এক্স-পাওয়ারেড
-বাই
প্রাসঙ্গিক টুকরো নীচে পুনরুত্পাদন:
তবে কনফিগারেশনের মাধ্যমে সার্ভার প্রতিক্রিয়া শিরোনাম সরানোর কোনও সহজ উপায় নেই। ভাগ্যক্রমে আইআইএস 7 এর একটি পরিচালিত প্লাগযোগ্য মডিউল অবকাঠামো রয়েছে যা আপনাকে সহজেই এর কার্যকারিতা প্রসারিত করতে দেয়। নীচে HTTP প্রতিক্রিয়া শিরোনামগুলির একটি নির্দিষ্ট তালিকা সরানোর জন্য এইচটিটিপিডমডুলির উত্স রয়েছে:
namespace Zen.Core.Web.CloakIIS
{
#region Using Directives
using System;
using System.Collections.Generic;
using System.Web;
#endregion
/// <summary>
/// Custom HTTP Module for Cloaking IIS7 Server Settings to allow anonymity
/// </summary>
public class CloakHttpHeaderModule : IHttpModule
{
/// <summary>
/// List of Headers to remove
/// </summary>
private List<string> headersToCloak;
/// <summary>
/// Initializes a new instance of the <see cref="CloakHttpHeaderModule"/> class.
/// </summary>
public CloakHttpHeaderModule()
{
this.headersToCloak = new List<string>
{
"Server",
"X-AspNet-Version",
"X-AspNetMvc-Version",
"X-Powered-By",
};
}
/// <summary>
/// Dispose the Custom HttpModule.
/// </summary>
public void Dispose()
{
}
/// <summary>
/// Handles the current request.
/// </summary>
/// <param name="context">
/// The HttpApplication context.
/// </param>
public void Init(HttpApplication context)
{
context.PreSendRequestHeaders += this.OnPreSendRequestHeaders;
}
/// <summary>
/// Remove all headers from the HTTP Response.
/// </summary>
/// <param name="sender">
/// The object raising the event
/// </param>
/// <param name="e">
/// The event data.
/// </param>
private void OnPreSendRequestHeaders(object sender, EventArgs e)
{
this.headersToCloak.ForEach(h => HttpContext.Current.Response.Headers.Remove(h));
}
}
}
আপনি সমাবেশে স্বাক্ষর করেছেন তা নিশ্চিত করুন, তারপরে আপনি এটিকে আপনার ওয়েব সার্ভারের জিএসি তে ইনস্টল করতে পারেন এবং কেবলমাত্র আপনার অ্যাপ্লিকেশনটির ওয়েবকনফাইগের (বা আপনি যদি এটি বিশ্বব্যাপী প্রয়োগ করতে চান তবে মেশিনকনফিগ) -এ নিম্নলিখিত পরিবর্তন করতে পারেন:
<configuration>
<system.webServer>
<modules>
<add name="CloakHttpHeaderModule"
type="Zen.Core.Web.CloakIIS.CloakHttpHeaderModule, Zen.Core.Web.CloakIIS,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=<YOUR TOKEN HERE>" />
</modules>
</system.webServer>
</configuration>