У меня есть ферма MOSS 2007, для которой требуется клиентский сертификат.Я написал несколько методов, которые используют встроенные службы SharePoint для извлечения данных с сайта.Однако за пределами моей локальной тестовой среды все требует наличия сертификата клиента для доступа к сервисам.
Мой метод получения сертификата:
private static X509Certificate2 GetCertCreds()
{
X509Store store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
try
{
store.Open(OpenFlags.ReadOnly);
X509Certificate2Collection certs = store.Certificates.Find(X509FindType.FindBySubjectKeyIdentifier, "SiteIdentityCertificateSerialNumber", true);
Assert.IsNotNull(certs);
return certs[0];
}
finally
{
store.Close();
}
}
Тогда при использовании у меня должно быть что-то похожее:
using (ListsServiceProxy.Lists service = new ListsServiceProxy.Lists())
{
service.Crendentials = GetCredentials();
XmlNode idResultsNode = service.GetListItems(documentLibraryName, null, queryNode, viewNode, "1", optionNode, null);
}
Это не компилируется из-за типанесоответствие.Я поступаю об этом неправильно?Если нет, есть ли способ использовать сертификат в качестве учетных данных служб?В конце концов, я пытаюсь преобразовать X509Certificate2 в ICredentials.Любая помощь или совет будет принята с благодарностью.