問題タブ [asp.net-web-api2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
15362 参照

asp.net - .net WebApi2アプリケーション内のOAuth2トークンリクエストで追加のパラメータをどのように消費しますか?

大規模な .net MVC 5 Web ソリューションに API 固有のプロジェクトがあります。APIを介してユーザーを認証するために、すぐに使用できるWebApi2テンプレートを利用しています。個々のアカウントを使用して認証する場合、アクセス トークンを取得するために必要なリクエスト ボディは次のとおりです。

これは期待どおりに機能します。

ただし、スキャフォールディングされたメソッド「GrantResourceOwnerCredentials」に 3 番目のディメンションを追加する必要があります。ユーザー名/パスワードの確認に加えて、デバイス ID を追加する必要があります。これは、ユーザー アカウントから特定のデバイスへのアクセスを制限するためのものです。明確でないのは、これらの追加のリクエスト パラメータを、定義済みの「OAuthGrantResourceOwnerCredentialsContext」に追加する方法です。このコンテキストは現在、UserName と Password のためのスペースを確保していますが、明らかにもっと含める必要があります。

私の質問は単純です。OWIN OAuth2 トークン要求のログイン要件を拡張して、より多くのデータを含める標準的な方法はありますか? そして、.NET WebApi2 環境でそれを確実に行うにはどうすればよいでしょうか?

0 投票する
1 に答える
62 参照

asp.net - クライアント ページを使用した外部認証サービス

Facebook/Twitter にログインしたユーザーを使用して Web API を認証しています。私はこれに従った

さて、それは私が何をした可能性が最も高いです。しかし、私のビュー ページは別の方法でホストされます。つまり、ユーザーは別のページでログインし、API コントローラーから値を取得する ajax 要求を送信します。

ログインしているユーザーにのみ Web API を承認します。

0 投票する
1 に答える
1776 参照

entity-framework - Web Api 2 OData エンドポイントでのクレーム ベースの承認によるエンティティの保護

次のコントローラーが与えられた場合

私はClaimsAuthorizationManager.CheckAccess(...)

Current Principal これは、が一般的にできるかどうかを確認できる点でのみ役立ちますRead Account。ただし、特定のユーザーが読み取りを許可されているアカウントを確認したい場合は、道に迷ってしまいます。

マネージャーであるすべてのアカウントを読み取ることができるマネージャー ユーザーがいるのに対し、マネージャー以外のユーザーは自分のアカウントのみを読み取ることができるとします。

これに関するベスト プラクティスはありますか、それとも以前にこのようなことをしたことがありますか?探すためのヒントをいくつか教えてください。

0 投票する
1 に答える
2733 参照

asp.net-web-api - webapi 2.1 のヘルプ ページを拡張して追加データを含める

マイクロソフトの高度なヘルプ ページのカスタマイズで、Yao からのかなり古い投稿を見つけました。

手順を実装しようとしましたが、カスタム コメントをヘルプ ドキュメント内に表示することができません。

私の中で

XmlDocumentationProvider.cs

私は変更しました

を更新しました

HelpPageModel.cs

含める

最後に更新したのは GenerateApiModel です

アプリケーションを実行するたびに、responseDocProvider は null です。私が間違ったことをしたように見える何かが突き出ていますか?

問題に関するヘルプをいただければ幸いです

0 投票する
1 に答える
1420 参照

c# - Web API 2 属性ルーティング コントローラーの選択

プロジェクトで Web API 2 属性ルーティングを使用して、データに JSON インターフェイスを提供しています。コントローラー選択の奇妙な動作に直面していますが、それがバグなのか機能なのかはまだ決まっていません:)私のアプローチについて説明しましょう。

属性ルーティングを使用して OData 構文をシミュレートしたいと考えています (設計原則により、OData の直接使用は拒否されています)。たとえば、id=5 のエンティティを取得するには、HTTP GET 要求を URI http://mydomain.com/api/Entity(5)に使用します。HTTP PUT動詞で同じURIを使用してエンティティを更新することを期待しています。ここから旅が始まる…

エンティティを取得するためのコントローラー (FirstController以下の例) と、エンティティを変更するための別のコントローラー ( SecondController) が必要です。どちらのコントローラーも同じ URI (例: http://mydomain.com/api/Entity(5) ) を処理します。唯一の違いは、URI で使用される HTTP 動詞です。GET は で処理されFirstController、PUT は で処理されSecondControllerます。しかし、URI はそれらのどれによっても処理されません。代わりに HTTP 404 エラーが返されます。GET アクションと PUT アクションを 1 つのコントローラー ( でコメントアウトFirstController) のみに「マージ」すると、両方の動詞が正しく処理されます。私は IIS Express を使用しており、従来のルートはすべて無効になっています。属性ルーティングのみが担当しています。

コントローラーの選択プロセスが HTTP 動詞で機能しないようです。つまり、HttpGetandHttpPut属性はアクションの使用を制限するだけで、コントローラー選択時の基準にはなりません。私は MVC や Web API の基礎にあまり詳しくないので、大きな質問をさせてください。

前に説明した動作は、MVC / Web API 2 によって意図的に実装された機能ですか、それとも修正されるバグですか?

それが機能と見なされると、設計原則に従うことができなくなります。「マージされた」コントローラーと一緒に暮らすことはできますが、それでもそれを悪い習慣と考えています...または、私の考えの中で何かが欠けていますか?

私の環境設定:

  • Windows 7 (Oracle VirtualBox を使用する仮想マシン)
  • ビジュアル スタジオ 2013
  • .NET 4.5.1
  • ウェブ API 2

以下はFirstControllerクラスの実装です。

以下はSecondControllerクラスの実装です。

以下は、説明されている動作をテストするためのコンソール アプリケーションの実装です。

完了するために、以下が使用される DTO です。

ご回答ありがとうございます。

ヤン・カチーナ

0 投票する
0 に答える
865 参照

c# - HttpResponseException をスローするとエラーが発生する

ユーザーがデータベースに存在しない場合、ユーザーが見つからないというステータス コードを返そうとしています。

しかし、私はこのエラーが発生します:

HTTP 要求の処理で例外が発生しました。詳細については、この例外の「Response」プロパティによって返される HTTP 応答を参照してください。

ここに画像の説明を入力

これが私が送信した応答です

誰かが理由を知っていますか?

ありがとうございました

編集

それは私のラップトップでのみ起こります。IIS に問題がありますか?