2016-07-13 4 views
0

私はASP.NETでWebプロジェクトを手渡されました。それにはContentフォルダがあり、index.htmlファイルが含まれています。現時点では、人々はmysite.com/content/index.htmlに行くことができます。このプロジェクトにはMVCコントローラはありませんでした(私はそれを自分で作っていませんでした)。フォルダのフォーム認証が機能しない

私は人がHTMLページに直接行くことを望んでいません。私は自分のサイトのルートにログインページを持っていますので(mysite.com)、ログインしていなければそこにユーザをリダイレクトしたいと思います。自分のHomeControllerをIndexメソッドで作成しました。私はASP.NET IDを設定して、そのメソッドへのすべてのリクエストを承認します。フォーム認証をセットアップして、許可されていないすべての要求をコンテンツフォルダとそのコンテンツに/ Home/Index(または単にWebサイトのルート/)にリダイレクトする必要があります。

私はいくつかのこのサイト上の回答や他の場所ではかなり似ていることがわかりました:WebサイトのルートのWeb.configファイルで 、私はこのコードを持っている:しかし、これは動作しません

<configuration> 
     <location path="~/Content"> 
     <system.web> 
      <authorization> 
       <deny users="?" /> 
      </authorization> 
     </system.web> 
     </location> 

    <!-- some other nodes --> 

    <system.web> 
     <authentication mode="Forms"> 
      <forms name=".ASPXAUTH" loginUrl="/" /> 
     </authentication> 
    </system.web> 
</configuration> 

を、 mysite.com/content/index.htmlに行くと、私はmysite.comにリダイレクトされません。私もthis答えに記載されているように、別のweb.configファイルでこれらを分割しようとしました。私は間違って何をしていますか?

答えて

1

mvcパイプラインは静的コンテンツ(html)を含まない。

この行をプロジェクトweb.configファイルのsystem.webServerに追加します。

<modules runAllManagedModulesForAllRequests="true"> 
+0

私のために働きました!大変おかげさまで、多くの回答がこの部分に言及していませんでした。 – ohyeah

関連する問題