MVC
いろんな場所でちょいちょい話してた Endpoint Routing について調べたので書きます。パフォーマンス改善が目立った ASP.NET Core 2.2 の更新内容としては、唯一 Endpoint Routing は特定のパターンでは Breaking change となります。そもそも Endpoint Rout…
ASP.NET Web API が追加されたときに問題になった、HTTP 401 を返すとリダイレクトに変換される挙動ですが、ASP.NET Core 2.1 でも近い挙動になるようにデフォルトで設定されています。当時は謎のキーを追加しましたが、結局 ASP.NET 自体にフラグが追加され…
ちょっと前に ASP.NET Core で Open Redirect の脆弱性が見つかって修正したという話が出てました。歴史的に ASP.NET は Open Redirect の脆弱性が多い気もしますが、デフォルトの挙動が ReturnUrl を受け取り、それを使うという形なので注意したい部分では…
大昔に書いた ASP.NET MVC 3 向けの内容を Core MVC 向けにします。と言ってもほぼ別物になってますが、基本的な考え方は SelectListItem 側に寄せる、なのでいい感じに扱えるようにしてみます。Core MVC では Razor が超進化しているので、DI や Tag Helper…
LINE のイベントで LINE Login が OpenID Connect に対応したという発表があったようです。昔に比べると、簡単に LINE Login の設定が出来るようになっているので、今後は色々な部分での採用が広がりそうな気もします。OpenID Connect 対応は特に重要なアッ…
サンプルとか超小規模以外の ASP.NET Core MVC アプリケーションを書いてますが、いろいろと悩んだりはまったりしたポイントがあったのでまとめました。まだまだありそうなので、ちょっとずつまとめようかと思います。 addTagHelper にはアセンブリ名を指定…
何だかんだで一番苦労するのがフォームを作成する時なので、後から見て思い出せるように Tag Helpers を使って書く時の基本的なメモをまとめておきます。ASP.NET Core MVC 2.0 以降は Razor がアップデートされて変わりそうですが、とりあえず 1.1 対象で。 …
ちょっと真面目に ASP.NET Core MVC の Razor を書いている時に、そういえば Tag Helpers の書き方をあまり勉強していなかったと気が付いたので、これを気に個人的によく使いそうな部分だけメモります。例によってドキュメントがちゃんと用意されているので…
そろそろ ASP.NET Core MVC を本格的に使っていこうかと思っているので、これまで ASP.NET MVC 5 でよく使っていた Area を実際に Core MVC で使ってみることにします。とは言っても、公式のドキュメントに書いてあることで十分ですが、URL ルーティングとの…
サンプルではなく、実際に ASP.NET Core MVC アプリケーションを開発する人が選ぶと思われる認証なしテンプレートでは、Visual Studio でのスキャフォールディングに必要なパッケージが追加されません。私は基本的に認証なしを選んで作っていくタイプなので…
仙台に行ったとき、ぼんぷろおじさんに ActionFilter で実行時にオプションを扱う場合にどうすればいいのか聞かれて、フィルタ周りまとめないといけないことを思い出したので書きます。思いのほか長くなってしまったので、久し振りに目次記法を使うことにし…
ASP.NET MVC の RequireHttps 属性を使うと、HTTP で来た場合には HTTPS にリダイレクトしてくれるのですが、開発環境で 443 以外のポートを使っている場合、正しく動作しないという欠点がありました。 [RequireHttps] public ActionResult Index() { return…
ASP.NET Web API 2 でも Content Negotiation は実装されていましたが、Core MVC では進化してさらに便利な機能が追加されていたので、簡単にですが調べてみました。Formatting Response Data — ASP.NET documentationドキュメントも割と揃ってきているので…
これは既に本番環境で動作している ASP.NET MVC アプリケーションを、軽い気持ちで ASP.NET Core MVC にマイグレーションしようとした考えが甘い男の、真実の物語である。ネタ記事っぽいですが、割と真面目にマイグレーションしようとして、余りにも辛くなっ…
.NET Core 1.0 と ASP.NET Core 1.0 が RTM したので、とりあえず簡単なものからマイグレーションしてみました。ターゲットは無職になる前に作ったこれです。時間を持て余した感あるので、俺得 API 作ってた https://t.co/9ag1MfPiGU— しばやん (@shibayan) …
地味ですが ASP.NET Core MVC 1.0 では URL ルーティングの仕組みが大きく変わりました。今までは ASP.NET のルーティングモジュールを使っていましたが、ASP.NET Core 1.0 では新規にミドルウェアとして実装されました。少し挙動が変わっていて、新しい機能…
ASP.NET Core MVC 1.0 に追加された機能の中で 1,2 を争うぐらい個人的には気に入ってるのが View Components です。ざっくりと説明すると Razor の中だけで使える Controller/Action です。MVC 5 までは Html.Action/RenderAction を使って呼び出せる、子ア…
ASP.NET MVC 5 でもキャッシュのための手段はいくつか用意されていましたが、ASP.NET Core MVC 1.0 では少し方向性が変わっています。大きく変わっているのが OutputCache 属性が無くなっていることです。現実的にキャッシュを行う手段は ASP.NET Core MVC 1…
ASP.NET MVC 5 までは FormsAuthentication を使って実装していた部分を、ASP.NET Core MVC 1.0 でも同じように独自で実装したいときにどうすればいいのか調べました。公式のサンプルは Identity を使っていますが、ドキュメントに Identity を使わない方法…
今更感が半端ないですが、ASP.NET MVC で開発したアプリケーションに reCAPTCHA の version 2 を組み込む方法を調べました。何番煎じか分かりませんが、小ネタ程度にまとめておきます。reCAPTCHA を使うためには Google のサイトから URL を登録して、トーク…
リリースされたばかりの .NET Framework 4.6 が Azure Web Apps で使えるようになったらしいので、動かしていた ASP.NET MVC 5 なアプリケーションを ASP.NET 4.6 と C# 6.0 にアップデートしてみました。8 月中にリリースという話でしたが、思ったよりも早…
ASP.NET MVC の Display Mode を使えば、ビューを用意するだけで PC 版とスマートフォン版のページを同じ URL で公開することができます。既に何回か紹介しているので、Display Mode については以下の記事を参考にしてください。ASP.NET MVC 4 で理想的なス…
昔 ASP.NET MVC 5 で開発を始める上で、自分が定型的に追加している設定をまとめた記事を書きました。ASP.NET MVC 5 での新規アプリケーション開発時に便利な設定をまとめてみた - しばやん雑記完全に自分用として書いた記事なので、頻繁に読むようになって…
割と有名な ASP.NET のフォーム認証モジュールのおせっかい機能として、HTTP ステータスコードで 401 を返すと自動的にログインページへの 302 リダイレクトに変換するというのがあります。認証が必要な Web サイトを作る場合には割と便利なんですが、API を…
特に意味はないのですが、はてなの各サービスで使えるようになっているなぞなぞ認証を、ASP.NET MVC の機能を使って実装してみました。なぞなぞ認証の詳細ははてなキーワードを見てください。なぞなぞ認証単純になぞなぞに回答して、それが正解であればペー…
以前に SendGrid の Parse API を使ってメールの受信をフックする - しばやん雑記 で使ったことがある SendGrid の Inbound Parse Webhook は、簡単にメールの受信が出来てとても便利なのですが、送信されるパラメータが多く、部分的に JSON だったりもする…
あまりにも MVC 6 は変更が多いので、概要をとりあえずサクッとまとめておきたい(ASP.NET 5 が RTM になるまでは、あまり確定情報みたいに書かないようにしているので、これもソースコード読みつつ調べた自分用メモだと思ってください。*1Release 6.0.0-bet…
MVC 5 でウィザード的に 1 ページごとに項目を入れていくページを作っていると、実際に DB に格納する前にセッションに入れておいたモデルの状態が正しいか調べたくなりました。てっきり「あー、UpdateModel / TryUpdateMode の中身参考にしないといけないの…
タイトルの通りですが、ASP.NET MVC を使って SSL が必須のページを実装するのには RequireHttps 属性が便利ですね。しかし、この属性は GET 以外のリクエストが来ると無条件で例外を投げるようになってます。例えば HEAD リクエストを投げてみると 500 が返…
昨日は SSL 3.0 の脆弱性以外に ASP.NET MVC の脆弱性に関しても情報が公開された日でした。2014 年 10 月のセキュリティ情報 (月例) - MS14-056 ~ MS14-063 - 日本のセキュリティチーム - Site Home - TechNet Blogs MS14-059: Description of the securit…