Je validais une URL régulière comme suit:validate lien sharepoint en C# sans utiliser dll Microsoft.SharePoint
private static bool IsUrlAvailable(string url)
{
if ((string.IsNullOrEmpty(url.Trim()) == true) ||
(url.Trim().ToLower().Equals("http://")) ||
(url.Trim().ToLower().Equals("https://")))
{
return false;
}
if (!url.ToLower().StartsWith("http://") && !url.ToLower().StartsWith("https://"))
{
url = "http://" + url;
}
try
{
var req = (HttpWebRequest)WebRequest.Create(url);
req.Timeout = 15000;
req.Method = "HEAD";
using (var rsp = (HttpWebResponse)req.GetResponse())
{
if (rsp.StatusCode == HttpStatusCode.OK)
{
return true;
}
}
}
catch (Exception ex)
{
// Eat it because all we want to do is return false
}
// Otherwise
return false;
}
Mais depuis que je me sers d'un WebRequest.Create, urls SharePoint authentifiées sur l'intranet ne parviennent pas validation, car d'autorisation refusée (404) erreur. Maintenant, je sais que nous pouvons le valider en utilisant SPSite.Exists
ou OpenWeb
mais ceux-ci ne sont disponibles que dans microsoft.sharepoint.dll et je me demandais s'il y a une façon de le faire sans utiliser cette DLL?
Utilisez votre code: 'req.UseDefaultCredentials = true;'? – aquinas