2016-08-04 4 views
27

मैं एएसपी.नेट एमवीसी वेबफॉर्म को एएसपी.नेट कोर एमवीसी में माइग्रेट करने की कोशिश कर रहा हूं। वर्तमान में, मुझे Request.UrlReferrer कक्षा में परेशानी हो रही है।मैं एएसपी.नेट कोर एमवीसी में यूआरएल रेफरर कैसे प्राप्त कर सकता हूं?

मूल लाइन है:

[HttpPost] 
    public async Task<ActionResult> ContactUsFormSubmit(ContactUs request) 
    { 
     var siteUrl = Request.UrlReferrer.ToString().ToLower(); 
     .... 
    } 

हालांकि, ASP.NET कोर के साथ, UrlReferrer उपलब्ध नहीं है। मुझे निम्नलिखित पाया गया है:

Request.Headers["Referer"] 

जो स्ट्रिंग के बजाय स्ट्रिंगवैल्यू देता है। मुझे यकीन नहीं है कि मुझे इसका इस्तेमाल करने की कोशिश करनी चाहिए या अगर इस स्थिति के लिए कोई अन्य समाधान है। Request.ServerVariables भी उपलब्ध नहीं है या शायद मेरे पास नामस्थान नहीं है। मेरे नामस्थान निम्नानुसार हैं:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Threading.Tasks; 
using Microsoft.AspNetCore.Mvc; 
using Newtonsoft.Json; 
using Newtonsoft.Json.Linq; 

अगर कोई मुझे सही दिशा में निर्देशित कर सकता है तो मैं वास्तव में सराहना करता हूं।

+1

Google जैसी कुछ साइटें आपको सुरक्षा कारणों से रेफरर नहीं देतीं। Google आंखों से: Google नहीं चाहता कि आप खोज टेक्स्ट देखेंगे जो रेफरर का हिस्सा होगा। – Ben

+0

एफवाईआई: यूआरएल रेफरर विश्वसनीय नहीं है। – Win

उत्तर

45

आप लगभग वहां हैं। StringValues कक्षा ढांचे में स्ट्रिंग का कुशलतापूर्वक प्रतिनिधित्व करने के लिए केवल एक प्रकार का एएसपी.NET उपयोग करता है। विशेष रूप से HttpContext ऑब्जेक्ट में। आप इसे ToString() पर किसी स्ट्रिंग में कनवर्ट करने के लिए बस कॉल कर सकते हैं:

string referer = Request.Headers["Referer"].ToString(); 
+0

क्या आप इसे करने का एक विश्वसनीय तरीका मानेंगे? क्या कोई वैकल्पिक तरीका है? –

+2

यह ग्राहक द्वारा भेजे गए अनुरोध हेडर से संपत्ति तक पहुंचने के मामले में विश्वसनीय है। हालांकि, मैं क्लाइंट विश्वसनीय द्वारा भेजे जाने वाले रेफरर हेडर के _value_ पर विचार नहीं करता क्योंकि यह गुस्से में बहुत आसान है। –

+8

उन लोगों के लिए जो उत्सुक हैं यदि रेफरर को एवर में गलत वर्तनी है, तो ऐसा नहीं है। यद्यपि रेफरर सही वर्तनी है, फिर भी उन्होंने HTTP विनिर्देशन में गलत वर्तनी की है https://english.stackexchange.com/questions/42630/referer-or-referrer/42636 –

संबंधित मुद्दे