我正在验证常规 URL,如下所示:
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;
}
但由于我使用的是 WebRequest.Create,因此 Intranet 上经过身份验证的 SharePoint url 验证失败,因为权限被拒绝 (404) 错误。现在我知道我们可以使用SPSite.Exists
or来验证它,OpenWeb
但这些仅在 microsoft.sharepoint.dll 中可用,我想知道是否有一种方法可以在不使用此 DLL 的情况下执行此操作?