C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


■96000 / )  Re[9]: ASP.NETによるフォーム認証について
□投稿者/ WebSurfer (2121回)-(2020/10/15(Thu) 10:24:23)
No95999 (simano さん) に返信

撤退しますとか言っておきながら何ですが、最初の質問の以下が何かだけ書いておきます。

> Global.asax.cs内のApplication_Start関数で、初期状態から書かれている下記の一文があると、
> Webアプリ起動時のhtmlページに「アクセスが拒否されました。」と表示されます。
> ---
> RouteConfig.RegisterRoutes(RouteTable.Routes);
> ---

質問者さんが Visual Studio のどのテンプレートを使ってプロジェクトを作成したか不明ですが、
上のコードは Visual Studio が自動生成したものと理解して・・・

RouteTable.Routes というのは App_Start/RouteConfig.cs に含まれる静的クラス/メソッドで、
Global.asax.cs の Application_Start でアプリの起動時に一回だけ呼ばれるようになっていま
す。

それは Friendly url というルーティングの機能を有効にするためで、簡単に言うと旧来はブラ
ウザからページにアクセスする URL に default.aspx というように拡張子を含める必要があった
ものを default で呼び出すことができるようにしたものです。

> この一文をコメントアウトすると問題ないのですが、初期状態から書かれている文を
> コメントアウトして問題ないのか気になります。

コメントアウトするとその機能は無効になりますが、問題が少なくとも 2 つあります。(自分が
知らないだけで他にもあるかも)

(1) 拡張子 .aspx がついてないと当然 404 エラーになる。Visual Studio のテンプレートで作っ
  たプロジェクトでは Friendly url を使うことが前提で、.aspx 拡張子が付いてないリンクが
  多数ハードコーディングされている。自分が気が付いた限りでは、マスターページにあるリン
  ク先 4 ヶ所、Satrtup.Auth.cs の LoginPath = new PathString("/Account/Login") 、
Account フォルダ下の Manage.aspx ページ(他にもあったかも)。

(2) 301 リダイレクトなのでブラウザにキャッシュされてしまう。最初 Friendly url を有効にし
  ていて、途中で無効にした場合、ブラウザのキャッシュを消去しないとダメ。

ただ、上記のことが質問にある、

> Webアプリ起動時のhtmlページに「アクセスが拒否されました。」と表示されます。

とつながりませんが。そこは質問者さんの方で頑張って調べてもらう他なさそうです。
返信 編集キー/


管理者用

- Child Tree -