Sharepoint COM работает из Silverlight, но не из WPF - PullRequest
0 голосов
/ 04 сентября 2011

Я сталкиваюсь с интересной ситуацией.Мне нужно получить доступ к библиотеке ресурсов сайта SharePoint как из приложения WPF, так и из приложения Silverlight.Мое приложение Silverlight работает на 100%, но мое приложение WPF получает (500) внутреннюю ошибку сервера от службы.

Код Silverlight:

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        ClientContext clientContext = new ClientContext("http://myfullyQualifiedName.com");
        clientContext.Load(clientContext.Web);
        clientContext.ExecuteQueryAsync(onQuerySucceeded, onQueryFailed);
    }

    private void onQuerySucceeded(object sender, ClientRequestSucceededEventArgs args)
    {

    }

    private void onQueryFailed(object sender, ClientRequestFailedEventArgs args)
    {

    }

Код WPF:

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        ClientContext clientContext = new ClientContext("http://myfullyqualifiedname.com/");
        //clientContext.Credentials = new NetworkCredential("UserName", "Password", "Domain");
        clientContext.Load(clientContext.Web);
        clientContext.ExecuteQuery();
    }

Я пытался указать и не указывать учетные данные, в любом случае получаю Внутреннюю ошибку сервера.

Используемая мной клиентская DLL-библиотека Silverlight и не Silverlight Sharepoint имеет версию 14.4762.1000.

Теперь, если я изменю URL-адрес одного из наших других сайтов, код WPF будет работать без сбоев.Поэтому я думаю, что это где-то настройки SharePoint.

1 Ответ

1 голос
/ 26 февраля 2012

решено !! Почему аутентификация WPF не работает, когда работает Silverlight. (WPF пытался использовать Kerberos, Silverlight использовал NTLM) - Простое исправление:

ClientContext _clientContext = new ClientContext(sharePointSiteUrl);
Web _web = _clientContext.Web;

_clientContext.Load(_web, website => website.Title);
_clientContext.Load(_web.Webs);

CredentialCache cc = new CredentialCache();
cc.Add(new Uri(sharePointSiteUrl), "NTLM", CredentialCache.DefaultNetworkCredentials);
_clientContext.Credentials = cc;
_clientContext.AuthenticationMode = ClientAuthenticationMode.Default;

_clientContext.ExecuteQuery();
ListCollection _listCollection = _web.Lists;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...