2014年05月13日
川俣晶の縁側ソフトウェア技術雑記total 7142 count

ASP.NET Web APIで認証情報がセットされない問題と解決

Written By: 川俣 晶連絡先

「むっきー。あまりに意外な結末で腹が立った」

「何が問題でどう解決できたのか説明してくれよ」

問題 §

  • ASP.NET MVCとASP.NET Web APIを含むWebアプリケーションがある
  • ASP.NET MVCで認証した。当然ASP.NET MVCのページでは認証情報が取れる
  • ASP.NET Web APIのリクエストを投げると認証されていないことになっている

「つまり、Web APIに認証を掛けられないってことだ」

「ふむふむ」

原因と解決 §

「原因はなんだい?」

「プロジェクト作成時に自動生成させたWebApiConfig.csに以下のようなコードが含まれていた」

            // Web API configuration and services

            // Configure Web API to use only bearer token authentication.

            config.SuppressDefaultHostAuthentication();

            config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType));

「えっ? SuppressDefaultHostAuthenticationってなに? DefaultのHostAuthenticationをSuppressさせちゃうの?」

「そうらしいぞ」

「解決はなに?」

「とりあえずこの2行をコメントアウトしたらバッチリ認証情報が取れるようになった」

感想 §

「君の感想はなんだい?」

「こんな下らない問題で半日以上潰れた。泣きたい。疫病神なのかASP.NET Web API!」

「何を泣いているんだ」

「これは心の汗だい」

「結局どう考える?」

「単に特定のURLを叩いてJSONオブジェクトを送り込んでJSONオブジェクトを送り返してもらうぐらいの話なら、ASP.NET Web APIは無くてもいいな。むしろ無い方がいい。良く分からないブラックボックスを抱え込むと、問題発生時の調査にもの凄く時間と手間を食う」

「ASP.NET MVCもブラックボックスとは言えないのかい?」

「それは基本フレームワークだからまず使わないと話が始まらない」

「ASP.NET Web APIもASP.NET MVCの一部なんだろ?」

「ところが、ASP.NET MVCとは別個の独立したフレームワークらしいぞ」

「じゃあ、ASP.NET MVCだけ使って、ASP.NET Web APIは一切使わないってこともできるの?」

「それは可能らしい」

Facebook

このコンテンツを書いた川俣 晶へメッセージを送る

[メッセージ送信フォームを利用する]

メッセージ送信フォームを利用することで、川俣 晶に対してメッセージを送ることができます。

この機能は、100%確実に川俣 晶へメッセージを伝達するものではなく、また、確実に川俣 晶よりの返事を得られるものではないことにご注意ください。

このコンテンツへトラックバックするためのURL

http://mag.autumn.org/tb.aspx/20140513170223
サイトの表紙【技術雑記】の表紙【技術雑記】のコンテンツ全リスト 【技術雑記】の入手全リスト 【技術雑記】のRSS1.0形式の情報このサイトの全キーワードリスト 印刷用ページ

管理者: 川俣 晶連絡先

Powered by MagSite2 Version 0.36 (Alpha-Test) Copyright (c) 2004-2021 Pie Dey.Co.,Ltd.