मैं ASP.Net ( C # ) में ब्राउज़र का HTTP रेफ़रर प्राप्त करने का एक त्वरित, आसान और विश्वसनीय तरीका ढूंढ रहा हूं । मैं जानता हूँ कि HTTP संदर्भ में ही अविश्वसनीय है, लेकिन मैं रेफरर हो रही है, तो इसके बारे में एक विश्वसनीय तरीका चाहते हैं है वर्तमान।
मैं ASP.Net ( C # ) में ब्राउज़र का HTTP रेफ़रर प्राप्त करने का एक त्वरित, आसान और विश्वसनीय तरीका ढूंढ रहा हूं । मैं जानता हूँ कि HTTP संदर्भ में ही अविश्वसनीय है, लेकिन मैं रेफरर हो रही है, तो इसके बारे में एक विश्वसनीय तरीका चाहते हैं है वर्तमान।
जवाबों:
आप वर्तमान अनुरोध की UrlReferrer संपत्ति का उपयोग कर सकते हैं :
Request.UrlReferrer
यह रिफ़रर HTTP हेडर को उस अनुरोध से पढ़ेगा जो क्लाइंट (उपयोगकर्ता एजेंट) द्वारा आपूर्ति की जा सकती है या नहीं।
Request.UrlReferrer
सर्वर साइड पोस्टबैक के बाद उपयोग कर रहे हैं तो सावधान रहें । बेशक Request.UrlReferrer
अब उस पृष्ठ का मूल्य होगा जिसे आप वापस पोस्ट कर रहे हैं। ज्यादातर मामलों में, लोगों को पिछले पृष्ठ की आवश्यकता होती है। इस मामले में, सुनिश्चित करें कि जब आप पृष्ठ को पहले लोड करते हैं, तो आप पिछले पृष्ठ को स्टोरेज चर कह रहे हैं। और फिर जब आप इस चर का उपयोग करते हैं तो इसका पिछला पृष्ठ आपके पास आता है। उदाहरण के लिए, asp.net में पृष्ठ लोड घटना आप कर सकते हैं:if (Request.UrlReferrer != null) ViewState["PreviousPageUrl"] = Request.UrlReferrer.ToString();
Response.Redirect(ViewState["PreviousPageUrl"] != null ? ViewState["PreviousPageUrl"].ToString() : "SomeOtherPage.aspx");
Request.UrlReferrer
संपत्ति का उपयोग करें ।
दृश्यों के नीचे यह सिर्फ ServerVariables("HTTP_REFERER")
संपत्ति की जाँच कर रहा है।
UrlReferrer
एक साधारण कॉल की तुलना में बहुत अधिक हैServerVariables("HTTP_REFERER")
ServerVariables["HTTP_REFERER"]
एक स्ट्रिंग लौटाता है , जबकि Request.UrlReferrer
एक उड़ी लौटता है ।
Request.Headers["Referer"]
Request.UrlReferer
संपत्ति एक फेंक होगा System.UriFormatException
यदि संदर्भित HTTP हेडर विकृत है (जो भी हो सकता है, क्योंकि यह आम तौर पर आपके नियंत्रण में नहीं है)।Request.ServerVariables
MSDN के अनुसार उपयोग करने के लिए :
Request.ServerVariables संग्रह
ServerVariables संग्रह पूर्वनिर्धारित परिवेश चर के मानों को पुनः प्राप्त करता है और शीर्ष लेख की जानकारी का अनुरोध करता है।
अनुरोध
HTTP हेडर का एक संग्रह हो जाता है।
Request.Headers
एक बेहतर विकल्प है Request.ServerVariables
, क्योंकि Request.ServerVariables
इसमें सभी पर्यावरण चर और हेडर शामिल हैं, जहां Request.Headers
एक बहुत छोटी सूची है जिसमें केवल हेडर शामिल हैं।
तो सबसे अच्छा उपाय है Request.Headers
कि मूल्य को सीधे पढ़ने के लिए संग्रह का उपयोग करें । HTML के बारे में Microsoft की चेतावनियों को ध्यान में रखें यदि आप इसे एक फॉर्म पर प्रदर्शित करने जा रहे हैं, तो मान को एन्कोडिंग करें।
Referer
हेडर को HTTP_REFERRER
सर्वर वेरिएबल की तुलना में अलग तरीके से लिखा गया है।
इस तरह: HttpRequest.UrlReferrer संपत्ति
Uri myReferrer = Request.UrlReferrer;
string actual = myReferrer.ToString();
चूंकि Google आपको C# Web API Referrer
यहां इस सौदे के लिए खोज करते समय इस पद पर ले जाता है : सामान्य से Web API
एक अलग प्रकार का उपयोग करता है जिसे बुलाया नहीं जाता है । चूंकि एक सामान्य अनुरोध में यह जानकारी शामिल नहीं है, अगर आपको वास्तव में इसकी आवश्यकता है, तो आपको अपने ग्राहकों को इसे शामिल करने के लिए अपने रास्ते से बाहर जाना होगा। यद्यपि आप इसे अपना हिस्सा बना सकते हैं , लेकिन बेहतर तरीका यह है कि आप इसका उपयोग करें ।Request
MVC Request
HttpRequestMessage
UrlReferrer
Web API
API Object
Headers
सबसे पहले, आप HttpRequestMessage
एक UrlReferrer()
विधि प्रदान करने के लिए विस्तार कर सकते हैं :
public static string UrlReferrer(this HttpRequestMessage request)
{
return request.Headers.Referrer == null ? "unknown" : request.Headers.Referrer.AbsoluteUri;
}
फिर अपने ग्राहकों Referrer Header
को उनके लिए सेट करने की आवश्यकता है API Request
:
// Microsoft.AspNet.WebApi.Client
client.DefaultRequestHeaders.Referrer = new Uri(url);
और अब Web API Request
इसमें रेफ़र डेटा शामिल है जिसे आप इस तरह से एक्सेस कर सकते हैं Web API
:
Request.UrlReferrer();
string referrer = HttpContext.Current.Request.UrlReferrer.ToString();