CRMのWebサービスにアクセスするアプリケーションを作りました。問題は、dll を SharePoint サーバーに展開したときに、エラー 401 が無許可で返されたことです。どうやら System.Net.CredentialCache.DefaultCredentials は機能しませんでした (私の疑い)。これがコードです。
CrmSdk.CrmAuthenticationToken token = new CrmSdk.CrmAuthenticationToken();
token.AuthenticationType = AuthenticationType.AD;
token.OrganizationName = ORGANIZATION_NAME;
CrmService service = new CrmService();
service.Url = "http://crmserver:5555/mscrmservices/2007/crmservice.asmx";
service.CrmAuthenticationTokenValue = token;
service.PreAuthenticate = true;
service.Credentials = System.Net.CredentialCache.DefaultCredentials;
その逆です。
Sharepoint の Web サービスにアクセスするアプリケーション (プラグインのコーディング) を作成し、CRM サーバーにデプロイしたとき。Sharepoint の Web サービスにアクセスできませんでした。不正なエラー。コードは次のとおりです。
Lists listService = new Lists();
listService.PreAuthenticate = true;
listService.Credentials = System.Net.CredentialCache.DefaultCredentials;
listService.Url = "http://sharepointserver/webname/_vti_bin/Lists.asmx";
CRM サーバーと SharePoint サーバーは同じドメインにあります。
両方のコードで、資格情報部分を次のように変更してサーバーにデプロイすると、実行できます。
service.Credentials = new NetworkCredential("username", "password", "domain");
それでも、コード内のユーザーのパスワードが明らかになるため、これを行いたくありません。誰か助けてくれませんか?
両方のサーバーの IIS は匿名アクセスを許可せず、統合 Windows 認証を使用します。
ありがとうございました
ローカル コンピューターから、CRM Web サービスまたは SharePoint Web サービスにアクセスできます。DefaultCredentials が認証情報を送信し、そのパスワードが「保存されたユーザー名とパスワード」に保存されているため、認証されていると思います( [コントロール パネル] > [ユーザー アカウント] > [詳細設定] > [パスワードの管理] )。
service.Credentials = new NetworkCredential("username", "password", "domain");
私のローカルコンプからの私のDefaultCredentialsは、Webサービスへのアクセスを承認されています。
CRM Web サービスにアクセスする SharePoint サーバーにこれを実装しようとしました。そして..tadaa..それは動作しません。ハハハ..
サーバーの DefaultCredentials に資格情報を挿入できますか?
私がやりたい最後のことは、ユーザーアカウントをハードコードすることです(上記のコードのように)