DOBON.NET DOBON.NETプログラミング掲示板過去ログ

サブフォルダのWeb.Config の上書きについて

環境/言語:[C# Framework2.0]
分類:[ASP.NET]

ログイン画面が、パラメタに応じて別れているシステムがあります。
login.asp   ←A機能のログイン
login.asp?a=1 ←B機能のログイン
login.asp?a=2 ←C機能のログイン

/ROOT
 /A ←A機能
 /B ←B機能
 /C ←C機能

■ルートのWeb.Config
<authentication mode="Forms">
<forms loginUrl="~/login.aspx" />
</authentication>

■サブフォルダBのWeb.Config
<authentication mode="Forms">
<forms loginUrl="~/login.aspx?a=1"/>
</authentication>

各サブフォルダにWeb.Config を配置しましたが、loginUrlが上書きされず、
常にlogin.aspxになってしまいます。
何か良い実現方法はないでしょうか。
2011/01/18(Tue) 23:00:45 編集(投稿者)

■No28036に返信(M子さんの記事)

> 各サブフォルダにWeb.Config を配置しましたが、loginUrlが上書きされず、
> 常にlogin.aspxになってしまいます。

loginUrl の指定そのものが無効なのでしょうか。それとも、パラメータのみが除去される
のでしょうか。

たとえば、サブフォルダBのWeb.Config の loginUrl に存在しないパスをセットした場合も、
login.aspx に遷移しますか。

<authentication mode="Forms">
  <forms loginUrl="/morio.aspx" />
</authentication>
> たとえば、サブフォルダBのWeb.Config の loginUrl に存在しないパスをセットした場合も、
> login.aspx に遷移しますか。
>
> <authentication mode="Forms">
> <forms loginUrl="/morio.aspx" />
> </authentication>

はい。上記の場合も、login.aspxへ遷移します。
完全に無視されてしまうようです。
よろしくお願い致します。
■No28038に返信(M子さんの記事)
Web.config の authentication 要素はアプリケーションルートの直下にて設定する必要があります。
サブフォルダB はアプリケーションとして構成されていますか。

以前の設定を保持するキャッシュがあるのかもしれません。
IIS を再起動してみてはいかがでしょうか。
■No28047に返信(もりおさんの記事)
> Web.config の authentication 要素はアプリケーションルートの直下にて設定する必要があります。
> サブフォルダB はアプリケーションとして構成されていますか。

いいえ。構成されていません。
素人のような質問で申し訳ないのですが、
IISの設定の「アプリケーションの設定」でサブフォルダBを指定する、という
ことですよね?
試しているのですが、別なエラーが出て進んでおりません。
状況変わりましたら、またご報告いたします。
■No28048に返信(M子さんの記事)
> IISの設定の「アプリケーションの設定」でサブフォルダBを指定する、という
> ことですよね?

IIS 6.0 ですかね。

IIS 6.0 であれば、こんな感じで、
http://technet.microsoft.com/ja-jp/library/cc784087%28WS.10%29.aspx

IIS 7 であれば、こんな感じです。
http://www.microsoft.com/japan/powerpro/TF/column/ko_02_1.mspx#B
■No28049に返信(もりおさんの記事)

アプリケーションを分けることで、loginUrlが無視されなくなりました。
ただ、サブフォルダに移動後、再認証が必要になってしまうのですね。

一歩進むことが出来ました。
ありがとうございました!
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板