私はこれに夢中になり、まともな情報がどこにも見つかりません..
WCF と Ntlm 偽装を使用した SharePoint 3.0 Web サービスへの接続に関する情報はたくさんあります。ただし、SharePoint サービスにアクセスするクライアントが SharePoint ネットワークに対してリモートであり、認証が必要な場合、どのように構成して資格情報を SharePoint サービスに渡すのが最善でしょうか。
servicemodel.config 内の SharePoint ボックスにローカルな Windows ユーザー名とパスワードを指定できますか .. SharePoint インスタンスは、それにアクセスしているドメインの外部でスタンドアロンとして実行されています。したがって、ドメイン ユーザーが共有ポイント ボックスに存在しないため、なりすましは無関係です。
次のコードのような多くの組み合わせを試しました..ただし、次のような例外が繰り返し発生します。
「HTTP 要求はクライアント認証方式 'Anonymous' では許可されていません。サーバーから受信した認証ヘッダーは 'NTLM,Basic realm="wss.internaldev.local"' でした。
Windows資格情報を使用して「リモート」SharePoint Webサービスに接続する例を誰か提供できますか?
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();
バインディングの例:
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Windows" proxyCredentialType="None" />
</security>
また..
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Ntlm" />
</security>
行動:
<behavior name="behavior_WSS">
<clientCredentials>
<windows allowedImpersonationLevel="Impersonation" allowNtlm="true" />
</clientCredentials>
</behavior>
また
<windows allowedImpersonationLevel="Delegation" allowNtlm="true" />