- - PR -
複数ロールを使用するフォーム認証について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-03-10 16:24
会員制オンラインショップみたいなものを、Win2K Server, IIS 5.0
ASP.NET(.NET Framework1.1)で製作しています。 プログラム暦は長いのですが、ASP.NETはOJT中です。 フォーム認証について行き詰まったので、お知恵を拝借できればと思います。 現状ですが、ディレクトリ構成は次の様になっています。 AuthTest +-admin +-user AuthTestがルートで、ここは誰でもアクセスできます。admin,userは AuthTestのサブディレクトリで、adminのアクセスにはadminロール、 userのアクセスにはuserロールを必要とし、それぞれ別のloginページが あります。 そこで、web.configを次の様に記述しました。 <?xml version="1.0" encoding="utf-8" ?> <configuration> <system.web> <!-- 中略 --> <authentication mode="Forms"> </authentication> <authorization> <allow users="*" /> </authorization> <!-- 中略 --> </system.web> <location path="admin"> <system.web> <authentication mode="Forms"> <forms name="formauth1" loginUrl="adminlogin.aspx" /> </authentication> <authorization> <allow roles="admin"/> <deny users="?" /> </authorization> </system.web> </location> <location path="user"> <system.web> <authentication mode="Forms"> <forms name="formauth2" loginUrl="userlogin.aspx" /> </authentication> <authorization> <allow roles="user"/> <deny users="?" /> </authorization> </system.web> </location> </configuration> この状態で、admin以下やuser以下をアクセスしようとすると、 ログイン画面に遷移せず、 「アプリケーション レベルを超えて allowDefinition='MachineToApplication' として登録されているセクションを使うことはできません」 というエラーになります。 インターネットサービスマネージャーのadmin,userディレクトリの プロパティで、アプリケーション「AuthTest」として作成すると、 今度はuserlogin.aspxで 「型 'AuthTest.user.userlogin' を読み込めませんでした」 というエラーになり、ここで行き詰まってしまいました。 いろいろと書籍やWeb上で調べたのですが、単純なフォーム認証はともかく 複数のロールを使い分ける場合については、参考になる資料を見つけることが 出来ませんでした。 情報源へのポインタだけでも結構ですので、何かヒントを頂ければ幸いです。 | ||||
|
投稿日時: 2004-03-10 16:40
フォーム認証では、ログインページをリソースで分けるようなことは出来ないはずです。同じページで入力項目にロール指定も追加するとか、あるいはアプリケーション自体を分けてしまうとかしか思いつきません。 # フォーム認証の機構自体を自作するってのは置いといて。 > 複数のロールを使い分ける場合については、参考になる資料を見つけることが > 出来ませんでした。 普通ロールってのはログインしたユーザによって自動的に割り振られるか、またはせいぜいログイン時にどのロールでログインするかも指定する(こちらはあんまり見ないし今一に思いますが)というもので、アクセスしようとしたりソースに対して自動的に必要なロールでログインしようとするっていうのはあんまり見ないような気がします。 で、通常行うパターンではないので標準的な機能としては提供されていない→どうしても必要なら自作するということになります。 > 「アプリケーション レベルを超えて allowDefinition='MachineToApplication' > として登録されているセクションを使うことはできません」 これは結局、フォーム認証の設定はアプリケーション単位でしか出来ないよって言うエラーです。 | ||||
|
投稿日時: 2004-03-10 17:42
http://www.atmarkit.co.jp/fdotnet/technology/idnfw11_10/idnfw11_10_03.html
この辺を読むといいと思いますよ | ||||
|
投稿日時: 2004-03-10 18:50
なちゃさん、かめたろさん、ありがとうございます。
問題点が判りましたので、今回は管理側を別アプリにすることで 対応したいと思います。 |
1