2009-06-02 12 views
12

jadę orzechy z tego i nie może znaleźć żadnej godnej informacji gdziekolwiek ..Podłącz i uwierzytelnić SharePoint z WCF

Istnieje wiele informacji na temat podłączania do około 3,0 SharePoint Web Services z WCF i NTLM personifikacja. Jednak gdy klient uzyskujący dostęp do usług SharePoint jest zdalny do sieci SharePoint i wymaga uwierzytelnienia, jak najlepiej skonfigurować i przekazać referencje do usługi SharePoint.

Czy mogę określić nazwę użytkownika Windows i hasło lokalne w polu SharePoint wewnątrz pliku servicemodel.config .. nasza instancja SharePoint działa jako niezależna poza domeną uzyskującą do niej dostęp. Dlatego podszywanie się jest nieistotne, ponieważ użytkownicy domeny nie istnieją w polu programu Sharepoint.

Próbowałem wielu kombinacji jak poniższych kodów .. jednak ja wielokrotnie się wyjątki, takie jak:.

„Żądanie HTTP jest nieautoryzowany ze schematu uwierzytelniania klienta«Anonimowy»Nagłówek uwierzytelniania otrzymanej z serwera było" NTLM, Basic realm = "wss.internaldev.local"”

Może ktoś podać przykład podłączenia do "zdalnego" usługi sieci web programu SharePoint z poświadczeń systemu Windows

ListsSoapClient proxy = new ListsSoapClient(); 

proxy.ClientCredentials.Windows.ClientCredential.UserName = "admin_user"; 
proxy.ClientCredentials.Windows.ClientCredential.Password = "admin_password"; 
proxy.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Identification; 

listItems = proxy.GetListItems(...); 

proxy.Close(); 

wiążące przykładów:.?

<security mode="TransportCredentialOnly"> 
    <transport clientCredentialType="Windows" proxyCredentialType="None" /> 
</security> 

lub ..

<security mode="TransportCredentialOnly"> 
    <transport clientCredentialType="Ntlm" /> 
</security> 

zachowanie:

<behavior name="behavior_WSS"> 
    <clientCredentials> 
    <windows allowedImpersonationLevel="Impersonation" allowNtlm="true" /> 
    </clientCredentials> 
</behavior> 

lub

<windows allowedImpersonationLevel="Delegation" allowNtlm="true" /> 
+1

To pytanie może być lepiej dostosowana do ServerFault, com – Jazza

+1

Jest projekt na CodePlex że dodanie wsparcia WCF do SharePoint. http://spwcfsupport.codeplex.com/ – Hameds

Odpowiedz

1

Próbowałaś the things suggested here?

przykład w kodzie:

proxy.ClientCredentials.Windows.AllowedImpersonationLevel = TokenImpersonation.Impersonate; 
// AllowNtlm = false; 
+1

Tak, próbowałem tak wielu kombinacji podszywania/zezwalania na ntlm .. musiałem wyciągać włosy i się poddawać. Jestem prawie pewien, że nie mogę określić, chyba że proces wywołujący usługę jest już uwierzytelniony przez okna. tj. nie mogę podać konkretnego konta usługi w kodzie. – misteraidan