- PR -

【ASP.NET】フォーム認証のタイムアウト時の処理について

1
投稿者投稿内容
ひろれい
ぬし
会議室デビュー日: 2006/03/02
投稿数: 486
お住まい・勤務地: 万博開催地
投稿日時: 2006-06-16 17:12
WindowsXP Pro SP2
.NET Framewrok1.1
IIS5.1

現在、Web.config でフォーム認証の設定を行ない、タイムアウト時の処理を確認していますが、例外が発生し、うまくログイン画面に戻ってくれません。
Web.config には、以下のように設定しています。

コード:
    <authentication mode="Forms"> 
        <forms loginUrl="Login.aspx" name="FORMAUTH" timeout="1">
        </forms>
    </authentication>


タイムアウト時間は、テスト的に「1分」に設定しています。

例外発生時のスタックトレースは、以下のような内容です。
コード:
at System.Web.UI.TemplateParser.GetParserCacheItem() 
at System.Web.UI.TemplateControlParser.CompileAndGetParserCacheItem
(String virtualPath, String inputFile, HttpContext context) 
at System.Web.UI.TemplateControlParser.GetCompiledInstance
(String virtualPath, String inputFile, HttpContext context) 
at System.Web.UI.PageParser.GetCompiledPageInstanceInternal
(String virtualPath, String inputFile, HttpContext context) 
at System.Web.UI.PageHandlerFactory.GetHandler
(HttpContext context, String requestType, String url, String path) 
at System.Web.HttpApplication.MapHttpHandler
(HttpContext context, String requestType, String path, String pathTranslated, Boolean useAppConfig)



何か設定が足りないのでしょうか。
何かお分かりになる方がおりましたら、情報をお願い致します。
ひろれい
ぬし
会議室デビュー日: 2006/03/02
投稿数: 486
お住まい・勤務地: 万博開催地
投稿日時: 2006-06-21 15:40
あれから、色々と調べていたのですが、どうも初歩的なミスを犯している気がしてなりません。

現状、以下のようなフォルダ構成になっています。

フォルダA
   フォルダB
   binフォルダ
   Login.aspx
   Web.config

フォルダB
   hoge.aspx
   hogehoge.aspx

IISでは、フォルダAを仮想ディレクトリとしています。

Login.aspx でログイン認証が完了すると、フォルダBのページを表示します。
以降、ずっとフォルダB内のページを呼び出します。

ひょっとして、フォルダBにも Web.config っているんでしょうか?

 構成ファイルのみでフォーム認証を実現するには?

を読むと、サブフォルダ配下にもアクセス権限を設定するための Web.config が必要と受け取れそうなので。
ちなみに、現在は、<allow users="*"> としていますが。
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2006-06-21 15:58
フォルダAとフォルダBで別の権限を与えたい場合、フォルダBにweb.configをおいて
そこで権限を設定することができます。
AとBで権限が変わらない場合、また、ルートにあるweb.configにフォルダBの権限も
きちんと設定しているような場合にはフォルダBにはweb.configはいりません。

> ちなみに、現在は、<allow users="*"> としていますが。

すべてのユーザにアクセスを許す、という設定ですね。
これだとログイン画面には戻らないように思います。

<deny users="?"/>

未認証のユーザを拒否する場合はこうなります。
ひろれい
ぬし
会議室デビュー日: 2006/03/02
投稿数: 486
お住まい・勤務地: 万博開催地
投稿日時: 2006-06-21 16:31
引用:

どっとねっとふぁんさんの書き込み (2006-06-21 15:58) より:

> ちなみに、現在は、<allow users="*"> としていますが。

すべてのユーザにアクセスを許す、という設定ですね。
これだとログイン画面には戻らないように思います。

<deny users="?"/>

未認証のユーザを拒否する場合はこうなります。


どっとねっとふぁんさん、お返事ありがとうございます。

すいません。私の記述が漏れていました。location を設定しているので、上記の件は大丈夫だと考えております。

コード:
  <location path="フォルダB">
      <system.web>
          <authorization>
              <deny users="?" />
          </authorization>
      </system.web>
  </location>



認証のタイムアウト自体が例外になるってあるんでしょうかね。
もうちょっと調べてみます。
ひろれい
ぬし
会議室デビュー日: 2006/03/02
投稿数: 486
お住まい・勤務地: 万博開催地
投稿日時: 2006-06-21 17:40
すいません、解決しました。

単純に、ログイン時のページ名が違っていました。
ごめんなさい。

あ〜、情けない・・・
1

スキルアップ/キャリアアップ(JOB@IT)