स्कॉट मिचेल अनावश्यक हेडर को हटाने के लिए एक ब्लॉग पोस्ट समाधान प्रदान करता है ।
जैसा कि पहले से ही अन्य उत्तरों में यहाँ कहा गया है, Serverहेडर के लिए, http मॉड्यूल समाधान है , या IIS 10+ के लिए एक web.config समाधान है , या आप URLRewrite का उपयोग इसे खाली करने के बजाय कर सकते हैं। ।
अप-टू-डेट (IIS 10 +) सेटअप के लिए सबसे व्यावहारिक समाधान removeServerHeaderweb.config में उपयोग किया जा रहा है:
<system.webServer>
...
<security>
<requestFiltering removeServerHeader="true" />
</security>
...
</system.webServer>
के लिए X-AspNet-VersionऔरX-AspNetMvc-Version बस नहीं उन सब पर पैदा:, वह प्रत्येक प्रतिक्रिया पर उन्हें हटाने की तुलना में एक बेहतर तरीका प्रदान करता है।
enableVersionHeaderअक्षम करने के लिए उपयोग करें X-AspNet-Version, web.config में
<system.web>
...
<httpRuntime enableVersionHeader="false" />
...
</system.web>
MvcHandler.DisableMvcResponseHeaderअक्षम करने के लिए .Net Application_Start ईवेंट का उपयोग करेंX-AspNetMvc-Version
MvcHandler.DisableMvcResponseHeader = true;
और अंत में, X-Powered-Byweb.config में कस्टम हेडर को IIS कॉन्फ़िगरेशन में हटा दें ।
<system.webServer>
...
<httpProtocol>
<customHeaders>
<remove name="X-Powered-By" />
</customHeaders>
</httpProtocol>
...
</system.webServer>
खबरदार, यदि आपके पास एआरआर (एप्लीकेशन रिक्वेस्ट राउटिंग) है, तो यह स्वयं को भी जोड़ देगा X-Powered-By, जिसे कस्टम हेडर सेटिंग्स द्वारा हटाया नहीं जाएगा। इसे IIS प्रबंधक, IIS रूट पर संपादक कॉन्फ़िगरेशन (साइट पर नहीं) के माध्यम से हटाया जाना चाहिए: system.webServer/proxyनोड पर जाएं और सेट arrResponseHeaderकरें false। एक के बाद IISReset, इसे ध्यान में रखा जाता है।
(मुझे यह यहाँ मिल गया है , सिवाय इस पोस्ट के पुराने IIS 6.0 चीजों को कॉन्फ़िगर करने का तरीका है।)
यह मत भूलो कि एप्लिकेशन कोड द्वारा समाधान स्थिर सामग्री पर उत्पन्न हेडर के लिए डिफ़ॉल्ट रूप से लागू नहीं होता है (आप runAllManagedModulesForAllRequestsइसे बदलने के लिए सक्रिय कर सकते हैं , लेकिन यह चलाने के लिए सभी अनुरोधों का कारण बनता है। नेट पाइपलाइन)। यह तब से कोई समस्या नहीं है X-AspNetMvc-Versionक्योंकि इसमें स्टैटिक कंटेंट नहीं जोड़ा गया है (कम से कम अगर स्टैटिक रिक्वेस्ट को .Net पाइपलाइन में नहीं चलाया जाता है)।
साइड नोट: जब उद्देश्य का उपयोग की गई तकनीक को क्लोक करने के लिए है, तो आपको मानक .Net कुकी नाम भी बदलना चाहिए ( .ASPXAUTHयदि प्रपत्र सक्रिय हैं ( web.config में टैग nameपर विशेषता का उपयोग करें forms), ASP.NET_SessionId( टैग के <sessionState cookieName="yourName" />तहत web.config में उपयोग करें system.web), __RequestVerificationToken(इसे बदलें ) कोड के साथ AntiForgeryConfig.CookieName, लेकिन दुर्भाग्य से छिपे हुए इनपुट पर लागू नहीं होता है यह प्रणाली HTML में उत्पन्न होती है))।