1

に私は、私はしかし、これは動作していない、基本認証を通じて認証しようとした.NET認証を前提

ためのODataクライアントとオンプレミスダイナミクス365に接続しようとしています。

var c = new Microsoft.Dynamics.CRM.System(new Uri("https://mycrm01/crm/api/data/v8.2/")); 

c.SendingRequest2 += (o, requestEventArgs) => { 
    var creds = username + ":" + password; 
    var encodedCreds = Convert.ToBase64String(Encoding.ASCII.GetBytes(creds)); 
    requestEventArgs.RequestMessage.SetHeader("Authentication", "Basic" + encodedCreds); 
}; 

var contacts = c.Contacts.Where(x => x.Firstname=="testuser"); 
foreach (var contact in contacts) 
{ 

} 

私が受け取るエラーは次のとおりです。HTTPエラー401 - 権限:アクセスが

を拒否された誰かがこれがどのように行われるか私を助けることができますか?

答えて

1

一般に私はJavaScriptのODataクライアントのみを使用します。 .NETを使用する場合は、CrmServiceClientクラスを介して認証とアクセスを提供するSDKライブラリを使用します。 C#のからのODataクライアントを使用するには

、この記事では、さまざまな認証方法の概要を示します。https://msdn.microsoft.com/en-us/library/mt595798.aspx

ウェブAPI認証パターン

のWeb APIを使用する際に認証を管理するための3つの異なる方法があります。

HTML Webリソース内でJavaScriptを使用してWeb API、 フォームスクリプト、またはリボンコマンドを使用する場合、認証にはコード を含める必要はありません。これらの各ケースでは、ユーザーはすでにアプリケーションによって認証された であり、認証は アプリケーションによって管理されます。オンプレミスデプロイメントの場合

オンプレミスデプロイメント用のWeb APIを使用する場合は、ユーザーのネットワーク資格情報の を含める必要があります。展開

直面Microsoft Dynamicsの365(オンライン)またはインターネットでC#

private HttpClient getNewHttpClient(string userName,string 
password,string domainName, string webAPIBaseAddress) { 
HttpClient client = new HttpClient(new HttpClientHandler() { Credentials = new NetworkCredential(userName, password, domainName) 
}); 
client.BaseAddress = new Uri(webAPIBaseAddress); 
client.Timeout = new TimeSpan(0, 2, 0); 
return client; 
} 

:次の例では、指定したユーザのネットワーク 資格情報のために設定を返しますC#関数 のHttpClientでありますDynamics 365(オンライン)のWeb APIまたはオンプレミスの インターネット接続(IFD)を使用する場合は、 で説明されているOAuthを使用する必要があります。OAuthを使用してMicrosoft Dynamics 365 Webサービスに接続します。あなたがJavaScriptの を使用して、単一ページのアプリケーション(SPA)を作成している場合は使用のOAuthで説明したように

あなたは Microsoft Dynamicsの365に単一ページのアプリケーションを接続するために クロスオリジンリソースの共有とadal.jsライブラリを使用することができます。

関連する問題