আমি ব্রাউজারের পাবার একটি দ্রুত, সহজ এবং নির্ভরযোগ্য উপায় খুঁজছি HTTP রেফারার মধ্যে ASP.Net ( C # এর )। আমি জানি HTTP রেফারার নিজেই অবিশ্বস্ত, কিন্তু আমি রেফারার পেয়ে যদি এটি একটি নির্ভরযোগ্য উপায় চাও হয় বর্তমান।
আমি ব্রাউজারের পাবার একটি দ্রুত, সহজ এবং নির্ভরযোগ্য উপায় খুঁজছি HTTP রেফারার মধ্যে ASP.Net ( C # এর )। আমি জানি HTTP রেফারার নিজেই অবিশ্বস্ত, কিন্তু আমি রেফারার পেয়ে যদি এটি একটি নির্ভরযোগ্য উপায় চাও হয় বর্তমান।
উত্তর:
আপনি বর্তমান অনুরোধের urlReferrer সম্পত্তি ব্যবহার করতে পারেন :
Request.UrlReferrer
এটি অনুরোধ থেকে রেফারার এইচটিটিপি শিরোনামটি পড়বে যা ক্লায়েন্ট (ব্যবহারকারী এজেন্ট) সরবরাহ করতে পারে বা নাও করতে পারে।
Request.UrlReferrer
কোনও সার্ভার সাইড পোস্টব্যাক পরে ব্যবহার করেন তবে সাবধান হন। অবশ্যই Request.UrlReferrer
আপনি এখন যে পৃষ্ঠায় পোস্ট করছেন তার মান থাকবে। বেশিরভাগ ক্ষেত্রে, লোকদের পূর্ববর্তী পৃষ্ঠাটি প্রয়োজন। এই ক্ষেত্রে, পৃষ্ঠার প্রথমটি লোড হওয়ার পরে আপনি পূর্ববর্তী পৃষ্ঠাটি একটি ভিউস্টেট ভেরিয়েবল বলতে স্টোর করছেন তা নিশ্চিত করুন। এবং তারপরে আপনি যখন এই ভেরিয়েবলটি অ্যাক্সেস করবেন তখন এতে পূর্ববর্তী পৃষ্ঠাটি এসেছিল। উদাহরণস্বরূপ, এসপি নেট ফর্মগুলিতে পৃষ্ঠা লোড ইভেন্ট আপনি করতে পারেন: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
যদি Referer HTTP শিরোলেখ বিকৃত (যা ঘটতে পারে যেহেতু এটি সাধারণত আপনার নিয়ন্ত্রণে নয়)।ব্যবহার হিসাবে Request.ServerVariables
, প্রতি এমএসডিএন:
অনুরোধ.সভারভারিভেরিয়েবলস সংগ্রহ
সার্ভারভেরিবলগুলি সংগ্রহ পূর্বনির্ধারিত পরিবেশের ভেরিয়েবলের মানগুলি পুনরুদ্ধার করে এবং শিরোনাম সম্পর্কিত তথ্যের জন্য অনুরোধ করে।
অনুরোধ.ইহেইডার্স সম্পত্তি
এইচটিটিপি শিরোনামের সংগ্রহ পান।
Request.Headers
এর চেয়ে ভাল পছন্দ Request.ServerVariables
, যেহেতু Request.ServerVariables
সমস্ত পরিবেশের পরিবর্তনশীল পাশাপাশি শিরোনাম রয়েছে, যেখানে Request.Headers
কেবলমাত্র শিরোনামগুলি রয়েছে এমন একটি সংক্ষিপ্ত তালিকা রয়েছে।
সুতরাং সেরা সমাধানটি হ'ল Request.Headers
সংগ্রহটি সরাসরি মানটি পড়ার জন্য ব্যবহার করা। মাইক্রোসফ্টের এইচটিএমএলকে মানটি এনকোডিংয়ের বিষয়ে সতর্কতাগুলির প্রতি সতর্কতা অবলম্বন করুন যদি আপনি এটি কোনও ফর্মে প্রদর্শন করতে যাচ্ছেন তবে।
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();