2010-09-17 110 views
2

我在Uri有一些網址。我如何檢查這個網址是否是某個網域或子網域的一部分。允許在Uri的域名/子域名

實施例:

URL:

http://www.example.com/something/index.apsx?lala=ddsadasd&dasdas=dsdas&dsdsd=ikpi&das=asd 

允許:

http://www.example.com/something/ 

不aloowed:

http://www.example.com/some/ 

如果URL是在允許域然後代碼繼續執行。

+2

請添加幾個允許/不允許的情況下。 – Restuta 2010-09-17 15:20:21

回答

2
Uri uri = new Uri("http://www.example.com/folder/page.ext?foo=bar"); 
uri.Segments.Contains("folder"); // true 
uri.DnsSafeHost.Split('.').Contains("example"); // true 

uri.Segements是:

  • 「/」
  • 「東西/」
  • 「index.ext」

DnsSafeHost.Split('.')是:

  • WWW
  • 例如
  • COM

,所以你可以根據需要使用此數據操縱。

編輯:

uri.Segments.Any(s => String.Equals(s.Replace("/", String.Empty), "something", StringComparison.OrdinalIgnoreCase)); 
uri.DnsSafeHost.Split('.').Any(s => String.Equals(s, "example", StringComparison.OrdinalIgnoreCase)); 
+0

如果您嘗試匹配的目標域名是mybank.com,是否與hahastealyourmoney.com/mybank.com匹配? – 2010-09-17 15:26:47

+0

編輯 但uri.DnsSafeHost.Split('。')。Contains(「example」)也會匹配example.stealmymoney.com,也許只是檢查DnsSafeHost是否以適當的域名結束。 – 2010-09-17 15:33:14

+0

thx尋求幫助。我會嘗試你的建議。 – senzacionale 2010-09-17 16:09:23