2009-06-02 12 views
12

tôi sẽ loại hạt với lỗi này và không thể tìm thấy bất cứ thông tin khá bất cứ nơi nào ..Connect và xác thực để SharePoint với WCF

Có rất nhiều thông tin xung quanh về kết nối với SharePoint 3.0 Web Services với WCF và NTLM mạo danh. Tuy nhiên, khi khách hàng truy nhập các dịch vụ SharePoint là từ xa đến mạng SharePoint và cần phải xác thực, cách tốt nhất cấu hình và chuyển thông tin đăng nhập vào dịch vụ SharePoint.

Tôi có thể chỉ định tên người dùng và mật khẩu cửa sổ cục bộ vào hộp SharePoint bên trong servicemodel.config .. thể hiện SharePoint của chúng tôi đang chạy dưới dạng độc lập bên ngoài miền đang truy cập vào nó. Do đó mạo danh là không thích hợp khi người dùng miền không tồn tại trên hộp sharepoint.

Tôi đã thử nhiều kết hợp như các mã sau đây .. tuy nhiên tôi liên tục có được những ngoại lệ như:.

"Yêu cầu HTTP không được cho phép với chương trình xác thực khách hàng 'Anonymous' Các tiêu đề xác thực nhận được từ máy chủ là" NTLM, lĩnh vực cơ bản = "wss.internaldev.local"'

bất cứ ai có thể cung cấp một ví dụ về kết nối với một "từ xa" dịch vụ SharePoint web với các thông tin của 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(); 

ví dụ Binding:.?

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

hoặc ..

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

hành vi:

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

hoặc

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

Câu hỏi này có thể phù hợp hơn với ServerFault, com – Jazza

+1

Có một dự án trên CodePlex mà thêm hỗ trợ WCF để SharePoint. http://spwcfsupport.codeplex.com/ – Hameds

Trả lời

1

Bạn đã thử the things suggested here?

ví dụ trong mã:

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

Vâng, tôi đã thử rất nhiều sự kết hợp của mạo danh/cho phép ntlm .. có để kéo tóc ra khỏi thời gian và sau đó đã bỏ cuộc. Tôi khá chắc chắn tôi không thể chỉ định trừ khi quá trình gọi dịch vụ đã được xác thực bởi các cửa sổ. tức là tôi không thể chỉ định tài khoản dịch vụ cụ thể trong mã. – misteraidan