有沒有一種方法來驗證.Net,ASP.Net或ASP.Net MVC中的URL?在.Net上有URL驗證器嗎?
33
A
回答
44
可以使用Uri.TryCreate
驗證一個網址:
public bool IsValidUri(string uri)
{
Uri validatedUri;
return Uri.TryCreate(uri, UriKind.RelativeOrAbsolute, out validatedUri);
}
的言論表明,TryCreate
只是移動異常處理向下一個級別。但是,我查看了源代碼,發現情況並非如此。 TryCreate
裏面沒有try/catch,它使用了一個不應該拋出的自定義解析器。
0
static bool IsValidUri(string urlString) {
try {
new Uri(urlString);
return true;
} catch {
return false;
}
}
0
比使用try/catch功能更快的方法(可能)是使用正則表達式。如果您不得不驗證數千次的網址,那麼多次捕捉異常的速度會很慢。
Here's a link to sample Regex - 使用Google查找更多。
13
您可以使用Uri.IsWellFormedUriString,沒必要創建自己的函數,該函數:
public static bool IsWellFormedUriString(string uriString, uriKind uriKind);
哪裏uriKind可以是:
UriKind.RelativeOrAbsolute
UriKind.Absolute
UriKind.Relative
欲瞭解更多信息,請參閱:http://msdn.microsoft.com/en-us/library/system.uri.iswellformeduristring.aspx
30
現在提供的答案不檢查一個計劃,允許各種不需要的輸入,這可能會讓你容易受到JavaScript注入(請參閱TheCloudle的評論ssSky)。
URI只是一個對象的唯一標識。 「C:\ Test」是一個有效的URI。
在項目中,我用下面的代碼:
/// <summary>
/// Validate a URL.
/// </summary>
/// <param name="url"></param>
/// <returns></returns>
private bool ValidUrl(string url)
{
Uri validatedUri;
if (Uri.TryCreate(url, UriKind.Absolute, out validatedUri)) //.NET URI validation.
{
//If true: validatedUri contains a valid Uri. Check for the scheme in addition.
return (validatedUri.Scheme == Uri.UriSchemeHttp || validatedUri.Scheme == Uri.UriSchemeHttps);
}
return false;
}
定義哪些方案,你會允許並相應地修改代碼。
相關問題
- 1. .NET:驗證URL是圖像
- 2. JQuery URL驗證器
- 3. 驗證在.NET
- 4. JEE6 Beans驗證1.0的URL驗證器
- 5. ASP.NET驗證器在鼠標上驗證
- 6. .NET驗證器不工作
- 7. .NET鏈接驗證器API?
- 8. 驗證iPhone上的URL
- 9. 谷歌驗證碼 - 驗證在VB .NET
- 10. Hibernate驗證器URL和ConstraintViolationException
- 11. 可能驗證.NET Attibute參數嗎?
- 12. ASP .NET MVC客戶端驗證有一些「有效」標誌嗎?
- 13. URL驗證沒有協議
- 14. 驗證URL沒有FILTER_VALIDATE_URL
- 15. 在Javascript中的URL驗證InstaGram驗證
- 16. MVC3 .NET - 驗證
- 17. .NET驗證
- 18. ASP .NET驗證
- 19. .NET驗證器(圖像觸發器)
- 20. 爲什麼一些url驗證器不讓url有' - '?
- 21. 配置驗證在.NET
- 22. 在.NET中驗證XMLDSIG鏈?
- 23. 驗證URL PHP
- 24. 驗證URL域
- 25. 驗證URL
- 26. mvc4 url驗證
- 27. Java:Regex驗證URL
- 28. URL驗證PHP
- 29. Grails URL驗證
- 30. Javascript URL驗證
查看關於divo的回答表現的評論 – 2009-05-29 20:26:13