トップ回答者
アクセス制限について教えてください

質問
-
Visual Web Developer ASP.NET 2.0 において、
アクセス制限を行いたいのですが、質問があります。
特定のユーザ用のページを作成したいのですが、
その、ユーザ向けaspxファイルへのリンク(例えば http://host/hoge/hoge.aspx )を
直接ブラウザで入力されても、ログイン前のユーザや、特定ユーザ以外には
表示させないように動作させるには、どうすればよいのでしょうか。
Page_Load() で ユーザ判定を行い、別のページに遷移させる方法では
ページ毎に記述を行う必要があるので、もっとスマートな方法を探しているのですが、
アドバイスをいただけないでしょうか。お願いします。
回答
-
ユーザがログイン後に参照したいページが複数ある場合、
(例)
http://host/hoge/hoge1.aspx
http://host/hoge/hoge2.aspx
http://host/hoge/hoge3.aspx
hoge1.aspx内だけでログオン済みユーザかの判別を行い、hoge2.aspx、hoge3.aspxで
チェックを行わないと、直接hoge2.aspxやhoge3.aspxのURLへアクセスされると覗かれて
しまうので、危険かと。。(ページ毎にログオン済みユーザかを判別したほうが良いと思います)
ログイン用のページをフォーム作成し、サーバ側で入力したユーザ名、パスワードを照合
し、認証に成功した場合にクライアントに何らかの認証済みの情報を持たせれば可能です。
この「何らかの認証済み情報」の持たせ方ですが、Cookieを使う(例:"auth"変数に
"1"をセットさせる等)や、Sessionオブジェクトの利用があります。
Session["Auth"]="1"
でセッション変数「Auth」に"1"を入れ、
String strAuth = (String)Session["Auth"]
で逆に取得できます。
各ページでセッション変数を取得し、値をチェックすれば認証済みかどうかを判別でき
ます。
上記例は、実現方法の例ですので、セキュリティ上の良し悪しは別としてお願いします。 -
hidegiさん
http://www.microsoft.com/japan/msdn/thisweek/step7/aspnet/MembershipAndRole/memberandrole3.aspx
私はこのあたりを参考にしましたがどうでしょうか。
すべての返信
-
ユーザがログイン後に参照したいページが複数ある場合、
(例)
http://host/hoge/hoge1.aspx
http://host/hoge/hoge2.aspx
http://host/hoge/hoge3.aspx
hoge1.aspx内だけでログオン済みユーザかの判別を行い、hoge2.aspx、hoge3.aspxで
チェックを行わないと、直接hoge2.aspxやhoge3.aspxのURLへアクセスされると覗かれて
しまうので、危険かと。。(ページ毎にログオン済みユーザかを判別したほうが良いと思います)
ログイン用のページをフォーム作成し、サーバ側で入力したユーザ名、パスワードを照合
し、認証に成功した場合にクライアントに何らかの認証済みの情報を持たせれば可能です。
この「何らかの認証済み情報」の持たせ方ですが、Cookieを使う(例:"auth"変数に
"1"をセットさせる等)や、Sessionオブジェクトの利用があります。
Session["Auth"]="1"
でセッション変数「Auth」に"1"を入れ、
String strAuth = (String)Session["Auth"]
で逆に取得できます。
各ページでセッション変数を取得し、値をチェックすれば認証済みかどうかを判別でき
ます。
上記例は、実現方法の例ですので、セキュリティ上の良し悪しは別としてお願いします。 -
hidegiさん
http://www.microsoft.com/japan/msdn/thisweek/step7/aspnet/MembershipAndRole/memberandrole3.aspx
私はこのあたりを参考にしましたがどうでしょうか。