• ベストアンサー

ログインフォーム

アドバイスをお願いします。 ログインフォームを作成しております、 管理ページTOP.aspでID、パスワード(管理者は1名)を固定にし、それぞれ変更、修正ページにも認証をかけたいのですが、方法がうまくまとまりません。(認証をかけないと直打ちすると出てきてしまいますよね) どのような考え方でプログラミングを行えばよいのでしょうか? 色々調べてはいるのですが、なにやらそれぞれのページの冒頭にチェック的な事を行っているみたいなのですが、ヒントを教えて下さい。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

Windows認証を使っているのであれば、管理者用のページのセキュリティ設定で、EveryoneやIIS_USERの読み取り権限を外せばよいです。 「ログインフォーム」とあるので独自の認証だと推測します。 私の経験談から。 まず、認証をチェックするためのASPを用意します。これはページとして用意するのではなく、認証をチェックするだけです。(念のためこのページは参照できないようにIISで制限を掛けておくとよいでしょう。) なお、ここでは、Session変数の"login"に"true"が入っていたら認証済みであるとします。 [check.asp] <% ' 認証していなければログインページにリダイレクトする If Session("login") <> "true" Then Response.Redirect "/login.asp" Response.End() End If %> 次に、認証が必要なページの先頭で、check.aspを#includeします。 [edit.asp] <!-- #include virtual="/check.asp" --> <html>・・・ </html> check.aspの中身がまず実行されるので、認証していなければページは表示されず、login.aspにリダイレクトされます。 数年間、このシステムで運用していましたが特に問題は発生しませんでした。 ここでタネ明かししたのでこのまんま実装するのも危ういと思います。 ファイル名やセッション変数名を変えるなどして工夫してください。

iroom0928
質問者

お礼

お礼が遅くなり申し訳御座いません。 ご回答本当に有り難う御座います。 勉強になりました。 しかし、リダイレクトの前の問題でした。 IDとパスワードを固定させるところでつまづいております。 がんばります!!

その他の回答 (1)

回答No.2

ASPを使うなら、web.configを使って、ログイン前はログイン認証用のページに強制的に飛ばす方法はどうでしょうか。

関連するQ&A