ono wrote: |
Webアプリケーションに対してどの認証を使うか、という設定はそのWebアプリのトップレベルの web.configにしか記述できませんね。 ただし、利用できるユーザの設定(authorization)はディレクトリ単位で設定することが可能です。
WebApp1\web.config にForm認証の設定を記述 WebApp1\Admin\web.configにAdminのロールをもったユーザのみ接続可能なようにauthorizationを記述 WebApp1\User\web.configにUserのロールをもったユーザのみ接続可能なようにauthorizationを記述 login.aspxはWebApp1直下に作成 AdminとUserそれぞれの直下にDefault.aspxを作成 AdminでログインしようとするひとはWebApp1\Adminにアクセス。 login.aspxでAdminユーザのIDとパスワードを入れるとWebApp1\Admin\Default.aspxが表示される。 UserでログインしようとするひとはWebApp1\Userにアクセス。 login.aspxでUserユーザのIDとパスワードを入れるとWebApp1\User\Default.aspxが表示される。
|
|
アドバイス、ありがとうございます。
(お答えいただいたのに、遅くなってすいません)
「認証チケットを持っていないユーザをどのディレクトリのログインページに強制リダイレクトさせるか」
という部分で躓いています。
<authentication>はアプリケーションルートでしか指定不可であることが影響して、
loginUrlプロパティをひとつしか指定できないためです。
/Admin/xxx.aspx にアクセスしてきたユーザは/Admin/Login.aspxへ。
/User/yyy.aspx にアクセスしてきたユーザは/User/Login.aspxへ。
このリダイレクトの設定に困っています。
・・・なので、次のような方法でやってみようと思います。
制御したいディレクトリごとにPageクラスを継承したクラスを作る。(AdminであればAdminBasePage.cs)
それぞれ継承したクラスの中でSession変数、Cookieのいずれかを確認する。
確認した結果によって、それぞれのログインページにリダイレクトさせる。
未熟ゆえ、ベストな選択が出来ませんが、
とりあえず出来そうな方法でやってみます。
# 同じような要件のアプリを開発している方の参考になるかも・・・なので、結果、報告しますね。
Task-64