URL'leri .Net, ASP.Net veya ASP.Net MVC içinde doğrulamak için bir yöntem var mı?.Net'de bir URL doğrulayıcı var mı?
cevap
Bir URL doğrulamak için Uri.TryCreate
kullanabilirsiniz:
public bool IsValidUri(string uri)
{
Uri validatedUri;
return Uri.TryCreate(uri, UriKind.RelativeOrAbsolute, out validatedUri);
}
comments TryCreate
sadece bir seviye aşağı taşıma istisna taşır düşündürmektedir. Ancak kaynak kodu kontrol ettim ve durumun böyle olmadığını gördüm. TryCreate
içerisinde deneme/yakalama yok, atmaması gereken özel bir ayrıştırıcı kullanıyor.
static bool IsValidUri(string urlString) {
try {
new Uri(urlString);
return true;
} catch {
return false;
}
}
Divan'ın performansıyla ilgili yoruma bakın –
Deneme/yakalama işlevini kullanmaktan daha hızlı bir yol (muhtemelen) Regex kullanmak olacaktır. Birden çok kez istisnai yakalayan 1000’lik URL’leri doğrulamak zorunda kalırsanız yavaş olur.
İşte a link to sample Regex - Daha fazla bilgi için Google'ı kullanın.
bir şekilde buna şüphem var. düzenli olarak derlenmiş olan regex'ler özellikle hızlı değildir. Doğru olan bir tane bile yazabilseniz bile. – Kris
Bu daha hızlı olurdu, ancak doğru olması çok daha zor. –
Kris- belki büyük bir döngüde yapılırsa ne kadar pahalı istisnalar olabileceğini anlamıyorsunuz - çok yavaşlar. – RichardOD
Sen Uri.IsWellFormedUriString, Bunun için kendi fonksiyonunu oluşturmak gerekmez kullanabilirsiniz:
public static bool IsWellFormedUriString(string uriString, uriKind uriKind);
uriKind olabilir: Daha fazla bilgi için
UriKind.RelativeOrAbsolute
UriKind.Absolute
UriKind.Relative
bkz: http://msdn.microsoft.com/en-us/library/system.uri.iswellformeduristring.aspx
Bu pek çok durumda işe yaramıyor – Farshid
Bu şekilde verilen cevaplar, javascript enjeksiyonu için sizi savunmasız bırakabilecek her türlü istenmeyen girişe izin veren bir şema olup olmadığını kontrol etmemektedir (TheCloudle'un görüşüne bakınız). ssSky).
URI, yalnızca bir nesnenin benzersiz bir tanımlamasıdır. "C: \ Test" geçerli bir URI'dir.
/// <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;
}
sen sağlayacak olan düzenleri tanımlamak ve buna göre kodunu değiştirmek: Projemde
ben aşağıdaki kodu kullandım.
+1, Bu en iyi yanıt ve aynı zamanda "bir URL'nin nasıl doğrulanacağı" sorusunu yanıtlayan benzersiz bir URL'dir, ** URL ** !. – ElektroStudios
- 1. Uuid doğrulayıcı ek açıklama var mı?
- 2. Herhangi bir büyük tarayıcıda yerleşik bir HTML doğrulayıcı var mı?
- 3. Yol bölümünde geçerli bir URL var mı?
- 4. önyükleme doğrulayıcı sıfırlama formu
- 5. Selenium Webdriver kullanarak URL metnini değiştirmenin bir yolu var mı?
- 6. Grails: Bir doğrulayıcı (/ düzenle güncellemek değil)
- 7. Zorunlu alan doğrulayıcı çalışmıyor
- 8. Paperclip görüntü özel doğrulayıcı
- 9. html5 gerekli doğrulayıcı = düğmesi
- 10. RSpec testi özel doğrulayıcı
- 11. Eşleşmeden önce Nginx unquote/unescape URL karakterleri var mı?
- 12. Raylar 3, Bilinmeyen doğrulayıcı: 'EmailValidator'
- 13. Java fo POJO'da url listesinde doğrulama var mı?
- 14. Bir giriş için birden fazla doğrulayıcı
- 15. - Bir fark var mı?
- 16. Birden fazla uygulamanın Özel URL Uygulaması için aynı URL Tanımlayıcısı var mı?
- 17. laravel doğrulayıcı - Bütünlük kısıtlama ihlali
- 18. Bir parametre kümesine dayalı bir URL oluşturacak bir Ruby kütüphanesi/mücevheri var mı?
- 19. Java'da WebClient.DownloadString'e benzer bir şey var mı?
- 20. Laravel Özel Doğrulayıcı Nasıl Yapılır?
- 21. ComboBox için hazırda bulunan doğrulayıcı
- 22. Bir kullanıcının google 1+ URL adresine sahip olduğunu bildirmenin kolay bir yolu var mı
- 23. AWS CLI kullanarak S3 nesnesi için önceden tasarlanmış bir url oluşturmanın bir yolu var mı?
- 24. Bir iPod SDK var mı?
- 25. BufferedImage.getGraphics(), bir düzeltme var mı?
- 26. bir SQL satırı var mı?
- 27. Dışarıda bir ParameterExpression var mı?
- 28. Delphi'de bir HashSet var mı?
- 29. Bir utf8_unicode_cs harmanlaması var mı?
- 30. CSS'de HTML yorumları var mı?
Bu, önerilen deneme/yakalama uygulamalarından daha iyidir. – RichardOD
Eğer 2.0 + 'da olmanız durumunda, tabii ki ... –
Sadece bir kez daha deneyin ve onu görmek zorunda kalmamanız için deneyin. –