Tôi có một URL tương đối hoặc tuyệt đối trong một chuỗi. Trước tiên tôi cần phải biết liệu nó là tuyệt đối hay tương đối. Làm thế nào để tôi làm điều này? Sau đó tôi muốn xác định xem tên miền của url có nằm trong danh sách cho phép hay không.Xác định xem URL tuyệt đối hay tương đối
Dưới đây là danh sách cho phép của tôi, như một ví dụ:
string[] Allowed =
{
"google.com",
"yahoo.com",
"espn.com"
}
Khi tôi biết liệu nó tương đối hoặc tuyệt đối, nó khá đơn giản tôi nghĩ rằng:
if (Url.IsAbsolute)
{
if (!Url.Contains("://"))
Url = "http://" + Url;
return Allowed.Contains(new Uri(Url).Host);
}
else //Is Relative
{
return true;
}
Đừng quên rằng một số người sử dụng tên miền phụ 'www'. – icktoofay
trùng lặp của http://stackoverflow.com/questions/2201171/determine-if-a-url-is-absolute-or-relative-from-vb –