タグ付けされた質問 「asp.net-web-api」

ASP.NET Web APIは、ブラウザーやモバイルデバイスなどのクライアント用のHTTPサービスを構築するためのフレームワークです。これは、Microsoft .NET Frameworkに基づいており、RESTfulサービスを構築するための理想的な選択肢です。

16
「X-Frame-Options」が「SAMEORIGIN」に設定されているため、フレームへの表示が拒否されました
私は、人々が自分の電話からアクセスできるように応答性があるはずのウェブサイトを開発しています。このサイトには、Google、Facebook、... etc(OAuth)を使用してログインできるいくつかの安全な部分があります。 サーバーのバックエンドはASP.Net Web API 2を使用して開発され、フロントエンドは主にAngularJSといくつかのRazorです。 認証部分については、Androidを含むすべてのブラウザーですべてが正常に機能していますが、Google認証はiPhoneでは機能せず、このエラーメッセージが表示されます Refused to display 'https://accounts.google.com/o/openid2/auth ?openid.ns=http://specs.openid.ne…tp://axschema.org/namePerson /last&openid.ax.required=email,name,first,last' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'. 今、私はHTMLファイルでiframeを使用していません。 私はググったが、問題を解決するための答えは得られなかった。


5
ASP.NET Web APIのJWT認証
Web APIアプリケーションでJWTベアラートークン(JSON Webトークン)をサポートしようとしていますが、道に迷ってしまいます。 .NET CoreとOWINアプリケーションがサポートされています。 現在、IISでアプリケーションをホストしています。 アプリケーションでこの認証モジュールをどのように実現できますか?<authentication>フォーム/ Windows認証を使用する方法と同様の構成を使用する方法はありますか?

10
HttpClientがPostAsJsonAsyncメソッドをサポートしていないC#
WebアプリケーションからWeb APIを呼び出そうとしています。.Net 4.5を使用していますHttpClientが、コードの作成中にエラーが発生しましたが、定義PostAsJsonAsyncメソッドが含まれていません。 以下はコードです: HttpClient client = new HttpClient(); client.BaseAddress = new Uri("http://localhost:51093/"); client.DefaultRequestHeaders.Accept.Add( new MediaTypeWithQualityHeaderValue("application/json")); var user = new Users(); user.AgentCode = 100; user.Remarks = "Test"; user.CollectionDate = System.DateTime.Today; user.RemittanceDate = System.DateTime.Today; user.TotalAmount = 1000; user.OrgBranchID = 101; var response = client.PostAsJsonAsync("api/AgentCollection", user).Result; そして私はエラーメッセージを受け取ります: エラー:「System.Net.Http.HttpClient」には「PostAsJsonAsync」の定義が含まれておらず、タイプ「System.Net.Http.HttpClient」の最初の引数を受け入れる拡張メソッド「PostAsJsonAsync」が見つかりませんでした(見つからないディレクティブまたはアセンブリ参照を使用していますか?) 見て、アドバイスしてください。

4
HttpClientのHttpRequestMessageにCookieを設定する方法
HttpClientアカウントを識別するHTTP Cookieの形式でログインする必要があるエンドポイントに投稿するためにWeb APIを使用しようとしています(これは#ifdefリリースバージョンから削除されたものにすぎません)。 にCookieを追加するにはどうすればよいHttpRequestMessageですか。

18
Web APIのリクエストに一致する複数のアクションが見つかりました
2つの "Get"メソッドを実行しようとすると、このエラーが発生し続ける リクエストに一致する複数のアクションが見つかりました:webapi 私はこれについてスタックで他の同様の質問を見回していますが、わかりません。 2つの異なる名前があり、「HttpGet」属性を使用しています [HttpGet] public HttpResponseMessage Summary(MyVm vm) { return null; } [HttpGet] public HttpResponseMessage FullDetails() { return null; }

7
Microsoft Web API:Server.MapPathをどのように実行しますか?
以来、マイクロソフトのWeb APIがないMVC、あなたはこのような何かを行うことはできません。 var a = Request.MapPath("~"); これも var b = Server.MapPath("~"); これらはSystem.Web名前空間ではなく名前空間の下にあるからSystem.Web.Httpです。 それでは、Web APIでサーバーの相対パスをどのように把握しますか? 私はMVCでこのようなことをしていました: var myFile = Request.MapPath("~/Content/pics/" + filename); これにより、ディスク上の絶対パスがわかります。 "C:\inetpub\wwwroot\myWebFolder\Content\pics\mypic.jpg"

13
Web APIコントローラーからhttpステータスコードを返す
Web APIコントローラーのGETメソッドで変更されていない304のステータスコードを返そうとしています。 私が成功した唯一の方法は次のようなものでした: public class TryController : ApiController { public User GetUser(int userId, DateTime lastModifiedAtClient) { var user = new DataEntities().Users.First(p => p.Id == userId); if (user.LastModified <= lastModifiedAtClient) { throw new HttpResponseException(HttpStatusCode.NotModified); } return user; } } ここでの問題は、これは例外ではなく、変更されていないため、クライアントキャッシュに問題がないことです。私はまた、戻り値の型がユーザーである必要があります(すべてのWeb APIの例がGETで示されているように)HttpResponseMessageまたはこのようなものを返しません。

17
HTTPエラー500.19およびエラーコード:0x80070021
Visual Studio 2013でビルドした単純なwebAPIがあります。VS13から実行するとうまく機能しますが、ローカルIISでプロジェクトをコピーすると、次のエラーが発生します。 HTTPエラー500.19-内部サーバーエラーページの関連構成データが無効なため、要求されたページにアクセスできません。 詳細なエラー情報: モジュール IIS Webコア 通知開始 リクエスト ハンドラー 未定 エラーコード 0x80070021 構成エラー この構成セクションは、このパスでは使用できません。これは、セクションが親レベルでロックされている場合に発生します。ロックは、デフォルト(overrideModeDefault = "Deny")か、overrideMode = "Deny"または従来のallowOverride = "false"が指定された場所タグによって明示的に設定されます。 構成ファイル \?\ C:\ inetpub \ wwwroot \ APITeslin \ web.config 構成ソース: 36: <system.webServer> 37: <handlers> 38: <remove name="ExtensionlessUrlHandler-Integrated-4.0" />

5
ASP.NET Web APIのオプションのクエリ文字列パラメーター
次のWebAPIメソッドを実装する必要があります。 /api/books?author=XXX&title=XXX&isbn=XXX&somethingelse=XXX&date=XXX クエリ文字列パラメーターはすべてnullにすることができます。つまり、呼び出し元は0から5つのパラメーターすべてを指定できます。 でMVC4ベータ私は、次の操作を実行するために使用しました: public class BooksController : ApiController { // GET /api/books?author=tolk&title=lord&isbn=91&somethingelse=ABC&date=1970-01-01 public string GetFindBooks(string author, string title, string isbn, string somethingelse, DateTime? date) { // ... } } MVC4 RCは、このように動作しなくなりました。5つ未満のパラメーターを指定すると、404格言で応答します。 リクエストに一致するコントローラ「Books」でアクションが見つかりませんでした。 URLルーティングでオプションのパラメーターを指定せずに、以前のように動作させるための正しいメソッドシグネチャは何ですか?

6
ローカルホストをトンネリング(ngrokを使用)経由でインターネットに公開:HTTPエラー400:不正なリクエスト。無効なホスト名
以前のバージョンの質問から、これがあります:localhostではなく、IPアドレスを使用してWebサイトを参照します。これは、これまでに行ったことのほとんどを概説しています...ローカルIPが機能しています。その後、ngrokを見つけました。どうやらIP経由で接続する必要はありません。 私がやろうとしているのは、ローカルホストで実行している私のウェブサイトをインターネットに公開することです。これを行うツールを見つけました:ngrok。 Visual StudioでWebサイトを実行すると、Webサイトはlocalhost / port#で起動します。コマンドラインで「ngrok http port#」コマンドを実行します。すべてがうまく起動するようです。いくつかのURLを生成し、ngrokインスペクションURL(localhost:4040)が機能します。 唯一の問題は、生成されたURLにアクセスすると、HTTPエラー400:不正なリクエスト、無効なホスト名が表示されることです。これは、ホストが見つからないというエラーである「ngrok http wrongport#」を実行したときとは異なるエラーです。何も言えない... トンネリングサービスを介して自分のサイトをインターネットに公開するときに、足りないステップはありますか?存在する場合、ngrokのドキュメントでは見つかりません。

30
ポストパラメータは常にnullです
WebAPIをRCにアップグレードしてから、私のWebAPIでPOSTを呼び出すときに、本当に奇妙な問題が発生しています。新しいプロジェクトで生成された基本的なバージョンに戻りました。そう: public void Post(string value) { } Fiddlerからの呼び出し: Header: User-Agent: Fiddler Host: localhost:60725 Content-Type: application/json Content-Length: 29 Body: { "value": "test" } デバッグすると、文字列「値」が割り当てられません。常にNULLです。この問題を抱えている人はいますか? (私は最初により複雑なタイプの問題を見ました) この問題はASP.NET MVC 4に限定されているだけでなく、RCのインストール後の新しいASP.NET MVC 3プロジェクトでも同じ問題が発生します。

15
OK以外の応答に対してIHttpActionResultでコンテンツを返す
Web API 2コントローラーから戻る場合、次のように応答がOK(ステータス200)であれば、応答を含むコンテンツを返すことができます。 public IHttpActionResult Get() { string myResult = ... return Ok(myResult); } 可能であれば、組み込みの結果タイプを可能な限りここで使用します:https : //msdn.microsoft.com/en-us/library/system.web.http.results(v=vs.118).aspx 私の質問は、別のタイプの応答(200ではない)の場合、それを使用してメッセージ(文字列)を返すにはどうすればよいですか?たとえば、私はこれを行うことができます: public IHttpActionResult Get() { return InternalServerError(); } これではありません: public IHttpActionResult Get() { return InternalServerError("Message describing the error here"); } 理想的には、これを一般化して、IHttpActionResultの実装のいずれかでメッセージを送り返すことができるようにします。 これを行う必要がありますか(そして、独自の応答メッセージを作成します): public IHttpActionResult Get() { HttpResponseMessage responseMessage = ... return ResponseMessage(responseMessage); } …

28
2012から2013に更新した後、ファイルまたはアセンブリ 'System.Web.Http 4.0.0をロードできませんでした
と私はアップグレードを行いました。 http://www.asp.net/mvc/tutorials/mvc-5/how-to-upgrade-an-aspnet-mvc-4-and-web-api-project-to-aspnet-mvc-5-and- web-api-2 エラーが発生します。他の誰かがこのエラーを受け取りましたか? 「/」アプリケーションでのサーバーエラー。 ファイルまたはアセンブリ 'System.Web.Http、Version = 4.0.0.0、Culture = neutral、PublicKeyToken = 31bf3856ad364e35'またはその依存関係の1つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。(HRESULTからの例外:0x80131040) 説明:現在のWeb要求の実行中に未処理の例外が発生しました。エラーの詳細と、エラーがコードのどこで発生したかについては、スタックトレースを確認してください。 例外の詳細:System.IO.FileLoadException:ファイルまたはアセンブリ 'System.Web.Http、Version = 4.0.0.0、Culture = neutral、PublicKeyToken = 31bf3856ad364e35'またはその依存関係の1つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。(HRESULTからの例外:0x80131040) ソースエラー: 48行目:49行目:50行目:} 51行目:52行目:protected void Application_BeginRequest(object sender、EventArgs e) ソースファイル:d:\ SM \ 7.4Test \ WebAPIServerV2 \ ThirdPartyWebAPI \ Global.asax.cs行:50 アセンブリロードトレース:次の情報は、アセンブリ 'System.Web.Http、Version = 4.0.0.0、Culture = neutral、PublicKeyToken = 31bf3856ad364e35'をロードできなかった理由を特定するのに役立ちます。 ===バインド前の状態情報===ログ:DisplayName = System.Web.Http、Version …

15
許可されていないwebapi呼び出しが401ではなくログインページを返す
かみそりビューから呼び出されたwebapiメソッドが、許可されていないときにログインページを返さないように、mvc / webapiプロジェクトを構成するにはどうすればよいですか? そのMVC5アプリケーションには、JavaScriptを介した呼び出し用のWebApiコントローラーもあります。 以下の2つの方法 [Route("api/home/LatestProblems")] [HttpGet()] public List<vmLatestProblems> LatestProblems() { // Something here } [Route("api/home/myLatestProblems")] [HttpGet()] [Authorize(Roles = "Member")] public List<vmLatestProblems> mylatestproblems() { // Something there } 次の角度コードを介して呼び出されます: angular.module('appWorship').controller('latest', ['$scope', '$http', function ($scope,$http) { var urlBase = baseurl + '/api/home/LatestProblems'; $http.get(urlBase).success(function (data) { $scope.data = data; }).error(function (data) { …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.