ASP.NET:Form認証のログインページでjavascriptやcss(外部ファイル)が効かない

2013年2月22日金曜日 - 投稿者 さい 時刻: 17:21
ASP.NET のフォーム認証でハマりました。

web.configに以下を記述しForm認証を設定。

<authentication mode="Forms">
  <forms loginUrl="~/Login.aspx" name=".ASPXFORMSAUTH" timeout="2880" defaultUrl="~/Top.aspx" />

</authentication>

そしたらログインページでjavascriptやcss、画像などの外部ファイルが効かなくなり、なんとも簡素なページが表示されてしまった。
原因はアプリケーションサイト内のすべてのコンテンツに対して認証がかかってしまったため。
ログイン認証が通れば普通に表示される。
ログインページに直接cssを書くのもありですが、画像はどうにもならない。

web.configに、認証の例外としたいフォルダを指定することで対応。
configurationタグ内に記載して下さい。

 <location path="common">
  <system.web>
   <authorization>
    <allow users="*"/>
   </authorization>
  </system.web>
 </location>


ついでに、認証後のReturnUrlが、直前のページではなく、一定のページで良い場合は
FormsAuthentication.RedirectFromLoginPage(USERID, False)
のかわりに
FormsAuthentication.SetAuthCookie(USERID, False)
Response.Redirect("/Top.aspx")

とします。