2017-11-29 13 views
0

私はKentico 9を使用しています。自分の位置情報マシンにCMSアプリケーションをデプロイしました。私はチュートリアル(Kentico 9)で与えられた命令に従ってRest APIを設定しました。Kentico 9 Rest API:403 Forbidden

しかし、それでもまだ、私は次のエラーを取得しています:通常禁断の

Status Code: 403 Forbidden 
Cache-Control: private 
Date: Wed, 29 Nov 2017 11:51:20 GMT 
Server: Microsoft-IIS/7.5 
Transfer-Encoding: chunked 
X-AspNet-Version: 4.0.30319 
X-Frame-Options: SAMEORIGIN 
X-Powered-By: ASP.NET 
+0

申し訳ありません、あなたが探しているページが見つかりません! –

+0

web.configで 'runAllManagedModulesForAllRequests'キーを設定しましたか?頻繁な間違い... – rocky

+0

はい。 runAllManagedModulesForAllRequestsがtrueに設定されています – NetraSW

答えて

0

は、あなたが許可されていないことを意味し、残りのAPIは、通常、リソースを要求している人を識別するためにそこヘッダーで認証トークンを送信する必要があります(APIをテストするためにpostmanプログラムを使用してください)、それ以外の場合は、あなたのWeb設定のハンドルモジュールタグが設定されていない可能性があります(拡張URLのドキュメントを参照)。それらを試してください。そうでなければ、あなたのリクエスト(ヘッダ、URLなど)の詳細を教えてください。

+0

返信ありがとうございます。基本認証のユーザー名とパスワードを設定する必要がある場合 以下に示すように 基本認証では、すべてのREST要求のヘッダーにある認証行によってユーザー名とパスワードを指定する必要があります。 認証タイプ(基本) Base64アルゴリズムを使用してコード化されたコロンで接続されたユーザー名とパスワード(ユーザー名:パスワード) – NetraSW

0

匿名認証が有効になっていることを確認してください。

0

rest APIに接続する際に資格情報を入力する必要があります。有効なユーザーを作成し、ブラウザを直接ブラウズしながら資格情報を提供します。

任意のプログラムを使用してapiにアクセスする場合は、httpclientオブジェクトの資格情報を渡す必要があります。詳細については、リンクを参照してください。 - https://docs.kentico.com/k9/integrating-3rd-party-systems/kentico-rest-service/authenticating-rest-requests

1

アクセスを許可する方法は2通りあります。リクエストURLの末尾にクエリ文字列パラメータとして追加するハッシュを生成することで、認証されていないユーザーや認証を行うことができます。 REST APIを有効にする必要があります。

https://docs.kentico.com/k9/integrating-3rd-party-systems/kentico-rest-service/configuring-the-rest-service

https://docs.kentico.com/k9/integrating-3rd-party-systems/kentico-rest-service/authenticating-rest-requests

Basic authenticationあなたはデータのみを認証してもらうために、両方の単一の要求をする必要があるので、リクエストのヘッダ内にユーザ名とパスワードを指定することができます。それはあなたのやりたいことのようですね。 Insomniaは、ツールが必要な場合は、REST APIをテストするための優れた無料ツールです。これはあなたを助けるかもしれません。テスト中にユーザー名とパスワードを指定し、情報の暗号化とヘッダー属性の作成を処理できます。また、コードサンプルも暗号化された情報を提供して吐き出すことができます。 C#の世界では

var data = null; 

var xhr = new XMLHttpRequest(); 
xhr.withCredentials = true; 

xhr.addEventListener("readystatechange", function() { 
    if (this.readyState === this.DONE) { 
    console.log(this.responseText); 
    } 
}); 

xhr.open("GET", "https://example.com/rest/macro/MyCustomMacro()"); 
xhr.setRequestHeader("authorization", "Basic Aml6dGFsa3byb2Nlc356R3Ryd1VHQVNeb1BabmVjQQ=="); 

xhr.send(data); 

、:ここで

は...

あなたはそれが次のようになり、基本的な認証とJavascriptの要求を構築していた場合不眠症によって生成されたいくつかのコードサンプルですあなたは別にパスワードを管理できるようにするには、API呼び出しのために特別にKenticoユーザーアカウントを作成することもできます

var client = new RestClient("https://example.com/rest/macro/MyCustomMacro()"); 
var request = new RestRequest(Method.GET); 
request.AddHeader("authorization", "Basic Aml6dGFsa3byb2Nlc356R3Ryd1VHQVNeb1BabmVjQQ=="); 
IRestResponse response = client.Execute(request); 

:コードは次のようになります実際の人と結びついたユーザーアカウント。私が見つけたものから、ユーザーはREST APIが動作するための管理者権限を持っている必要があります。