ধরা যাক আমি http://www.foobar.com এ একটি ওয়েবসাইট হোস্ট করছি ।
আমার কোডের পিছনে (যেমন আমার ওয়েব কনফিগারেশনে হার্ডকোড না রেখে) প্রোগ্রামযুক্তভাবে " http://www.foobar.com/ " নির্ধারণ করার কোনও উপায় আছে কি ?
ধরা যাক আমি http://www.foobar.com এ একটি ওয়েবসাইট হোস্ট করছি ।
আমার কোডের পিছনে (যেমন আমার ওয়েব কনফিগারেশনে হার্ডকোড না রেখে) প্রোগ্রামযুক্তভাবে " http://www.foobar.com/ " নির্ধারণ করার কোনও উপায় আছে কি ?
উত্তর:
HttpContext.Current.Request.Ull ইউআরএল-এ সমস্ত তথ্য পেতে পারে। এবং ইউআরএলটিকে তার টুকরো টুকরো টুকরো করে ফেলতে পারে।
string baseUrl = Request.Url.GetLeftPart(UriPartial.Authority);
উরি :: গেটলিফ্ট পার্ট পদ্ধতি :
GetLeftPart পদ্ধতিটি ইউআরআই স্ট্রিংয়ের বামতম অংশযুক্ত একটি স্ট্রিং প্রদান করে, যা অংশ দ্বারা নির্দিষ্ট অংশের সাথে শেষ হবে।
ইউআরআই এর স্কিম এবং কর্তৃত্ব বিভাগসমূহ।
এখনও যে কেউ ভাবছেন, তার জন্য একটি আরও সম্পূর্ণ উত্তর পাওয়া যাবে http://devio.wordpress.com/2009/10/19/get-absolut-url-of-asp-net-application/ এ ।
public string FullyQualifiedApplicationPath
{
get
{
//Return variable declaration
var appPath = string.Empty;
//Getting the current context of HTTP request
var context = HttpContext.Current;
//Checking the current context content
if (context != null)
{
//Formatting the fully qualified website url/name
appPath = string.Format("{0}://{1}{2}{3}",
context.Request.Url.Scheme,
context.Request.Url.Host,
context.Request.Url.Port == 80
? string.Empty
: ":" + context.Request.Url.Port,
context.Request.ApplicationPath);
}
if (!appPath.EndsWith("/"))
appPath += "/";
return appPath;
}
}
context.Request.Url.Port == 80
(context.Request.Url.Port == 80 && context.Request.Url.Scheme == "http") || (context.Request.Url.Port == 443 && context.Request.Url.Scheme == "https")
উদাহরণস্বরূপ url হ'ল http://www.foobar.com/Page1
HttpContext.Current.Request.Url; //returns "http://www.foobar.com/Page1"
HttpContext.Current.Request.Url.Host; //returns "www.foobar.com"
HttpContext.Current.Request.Url.Scheme; //returns "http/https"
HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority); //returns "http://www.foobar.com"
.Host
এর "http://www.foobar.com/Page1"
হয় www.foobar.com
, না foobar.com
।
সম্পূর্ণ অনুরোধ ইউআরএল স্ট্রিং পেতে:
HttpContext.Current.Request.Url
অনুরোধটির www.foo.com অংশ পেতে:
HttpContext.Current.Request.Url.Host
মনে রাখবেন যে আপনি আপনার ডিএসপি.এনইটি অ্যাপ্লিকেশনটির বাইরের উপাদানগুলির করুণায় কিছুটা অবধি রয়েছেন। যদি আইআইএস আপনার অ্যাপ্লিকেশনের জন্য একাধিক বা কোনও হোস্ট শিরোনাম গ্রহণ করার জন্য কনফিগার করা থাকে, তবে ডিএনএসের মাধ্যমে আপনার অ্যাপ্লিকেশনটিতে সমাধান করা সেই ডোমেনগুলির মধ্যে যে কোনও একটি ইউজার প্রবেশ করেছে তার উপর নির্ভর করে অনুরোধ ইউরাল হিসাবে প্রদর্শিত হতে পারে।
Match match = Regex.Match(host, "([^.]+\\.[^.]{1,3}(\\.[^.]{1,3})?)$");
string domain = match.Groups[1].Success ? match.Groups[1].Value : null;
স্বাগত ডট
কম => হোস্ট হোস্ট.কম ফেরত হোস্ট.কম
host.co.uk =>
হোস্ট.
co.co.uk ফিরুন www.host.co.uk => ফিরুন হোস্টকোট.উক এস 1.www.host.co.uk => ফিরুন
আমি জানি এটি আরও পুরানো তবে এখন এটি করার সঠিক উপায়
string Domain = HttpContext.Current.Request.Url.Authority
এটি সার্ভারের জন্য পোর্ট সহ ডিএনএস বা আইপি ঠিকানা পাবে।
এটিও কাজ করে:
স্ট্রিং url = HttpContext.Request.Url.Authority;
string host = Request.Url.Host;
Regex domainReg = new Regex("([^.]+\\.[^.]+)$");
HttpCookie cookie = new HttpCookie(cookieName, "true");
if (domainReg.IsMatch(host))
{
cookieDomain = domainReg.Match(host).Groups[1].Value;
}
Request
অবজেক্টটি দেখার চেষ্টা করতে পারেন ।