আমি ব্রাউজারের পাবার একটি দ্রুত, সহজ এবং নির্ভরযোগ্য উপায় খুঁজছি 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();