ASP.NETにおけるフォーム認証の問題

このQ&Aのポイント
  • ASP.NETにてフォーム認証を行おうとしていますが、設定がうまくいかないようです。
  • web.configに設定を記述しましたが、リダイレクトがうまく機能しない問題が発生しています。
  • 設定の項目が足りない可能性があるのか、勘違いしている箇所があるのか、アドバイスをいただきたいです。
回答を見る
  • ベストアンサー

フォーム認証について

ASP.NETにてフォーム認証を行おうとしています。 資料を参考にサンプルを実行しようとしているのですが、さわりの段階で早くも行き詰りました。 web.configに <authentication mode="Forms"> <forms name="formauthsample" loginUrl="Login.aspx" protection="All" timeout="30" path="/"> </forms> </authentication> と記述し、Login.aspx以外にもページを用意して、それらのページにダイレクトにアクセスした際にLogin.aspxにリダイレクトされるというのをテストしたかったんですが、リダイレクトされずにページが表示されてしまうのです。 web.configは上記設定だけでは足りないのでしょうか? または、根本的に勘違いをしていますでしょうか? アドバイスを宜しくお願いします。

  • TM31
  • お礼率81% (91/111)

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

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

Web.Configの構成要素 authorizationで 拒否するユーザーのルールが必要だと思います これがないと 全てのユーザーが承認されてしまい認証機構が機能しないと思います <authorization>   <deny users="?" /> </authorization> と言った具合だと 匿名ユーザーが拒否されます users = "*" とすると全てのアカウントに認証を要求します VS2005付属のMSDNなら下記を参照してみましょう 『方法 : 簡単なフォーム認証を実装する』 ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.ja/dv_aspnetcon/html/9522bc8d-1a41-480a-aa11-c389a4ac2d2e.htm

参考URL:
http://msdn2.microsoft.com/ja-jp/library/xdt4thhy(vs.80).aspx
TM31
質問者

お礼

早速のご回答有難うございます。 <deny users="?" /> のようにアカウント認証を要求するユーザーを指定して初めて機能するんですね。 かなり初歩的な部分で躓いてしまいお恥ずかしい限りです。 助かりました。どうも有難うございました。

関連するQ&A

  • ASP.NET フォーム認証のエラー??

    いつもお世話になっております。 VS2005にてアプリケーションを作成して 「WEBサイトの発行」でWEBサーバー上にアプリケーションを発行しました。 そのアプリケーションをサーバー上で実行した所、以下のエラーが出ました。 -------------------------------------------------------- 構成にエラーがあります。 パーサーエラーメッセージ:アプリケーションレベルを超えて allowDefinition='MachineToApplication'として登録されているセクションを使うことはできません。このエラーは、仮想ディレクトリがIISでアプリケーションとして構成されなかった場合に発生します。 ソースエラー: 行24:             を有効にします。 行25:--> 行26:   <authentication mode="Forms"> 行27:    <forms name="formauth" loginurl="Login.aspx" 行28: <protection="All" path="/" timeout="30"> --------------------------------------------------------- サーバーはWindows2000です。 Loginフォームがあり、フォーム認証のLoginページのみ上記のエラーが出て、他のaspxは普通に表示されます。 フォーム認証に問題があるのでしょうか? どうすれば解決できるのでしょうか?? 勉強して間もなく理解ができなく恐縮ですがご教示下さい。 お願い致します!

  • C#の認証設定

    ROOTのしたのWeb.configに <authentication mode="Forms"> <forms name="AA" loginUrl="AA.aspx" ... </forms> </authentication> という設定をしました。そして、全部のURLは認証必要となります。 でもひとつサブディレクトリを認証除外したいです。 どう設定したらいいですか? ---- 下記のURLと同じ質問ですか、回答が理解できません。 http://dobon.net/vb/bbs/log3-33/20517.html

  • web.configファイルの動作確認

    web.configで、ログイン認証を行おうと思い。 アプリケーションルートに「web.config」ファイルを作り置きましたが、 配置前と後では、さっぱり動作が変わりません。 web.configファイルが読み込まれて、 動作しているか確認する方法を知りたいのですが、 ご存じないでしょうか?よろしくお願いします。 使用OSは、Windows2000です。 以下は、web.configファイルに追記した部分です。 <authentication mode="Forms"> <forms loginUrl="login.asp" /> </authentication> <authorization> <allow users="*" /> </authorization>

  • web.configでフォーム認証できないのですが?

    (すいません、初心者です) web.configでフォーム認証をしたいのですが、 認証をしたいフォルダの.aspxファイルにしか認証が効かないのですが、同じフォルダ内の .cgi や .html にアクセスしようとしてもアクセス制限をかけるようにするには、どのようにすればいいのでしょうか?教えてください。 ちなみに使っているサーバーはiSLEのIIS共用サーバー http://windows.isle.jp/iis/index.html?id=isle_iis をレンタルしてます

  • 認証に失敗する

    Webアプリケーション作成中に以下のような状態になってしまいました 認証ページでユーザIDとパスワードを入力(正確)→エラーページ 「Webアプリケーション構築1」(株式会社SCC)のP266~275を参考に以下のようにTomcat 4.1\conf\server.xmlを書き換えました。 198~203行目(<!-- -->は外して) 186~187行目はコメント化 <Realm className="org.apache.catalina.realm.JDBCRealm" debug="99" driverName="org.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost/[使用データベース名]" connectionName="manager1" connectionPassword="manager1" userTable="user" userNameCol="userid" userCredCol="password" userRoleTable="user_role" roleNameCol="role" /> またWebアプリケーションのweb.xmlは次のようになっています ~省略(ここまでの表記では正常に動きます)~ <security-constraint> <web-resource-collection> <web-resource-name>Certification Area</web-resource-name> <url-pattern>/*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>admin</role-name> </auth-constraint> </security-constraint> <login-config> <auth-method>FORM</auth-method> <form-login-config> <form-login-page>/auth.jsp</form-login-page> <form-error-page>/error.jsp</form-error-page> </form-login-config> </login-config> 開発環境 Tomcat4.1 J2SDK1.4 MySQL4.0.26 Javaのプログラミングは入っていないのですが、関連はあると考えたのでこちらで質問しました。 上記のテキストを見直しても間違っている箇所が見当たりません。 大変長くなってしまいましたが、どこが間違っているか、足りていないかなど分かる方がいましたら教えてください。

  • Web.Config でカスタムエラーページの設定をしても通常のエラーページが表示される

    タイトルのとおり、ASP.NETサイトにおいて、 Web.Config でカスタムエラーページの設定をしても通常のエラーページが表示されてしまいます。 何が原因か調べていますが、まだ解決しません。 アドバイスお願いします。 [環境] ・Windows 2003 Server ・IIS6 [Web.Config の内容(抜粋)] <customErrors mode="On" defaultRedirect="myErr.html"/> [補足] Web.Config を置いているのは、 「c:\inetpub\wwwroot\WebApp\App1\Web.Config」 です。その他、このWebアプリで使うファイル(.aspx 等)も同じディレクトリ(App1)内にあります。 それと、一つ上の「WebApp」フォルダ内にもWeb.Config があります。 (こちらのWeb.Config には<customErrors>...<customErrors>タグは記述していません。)

  • Web.Config??

    http://www.atmarkit.co.jp/fdotnet/dotnettips/135aspauth/aspauth.htmlの、 アプリケーション・ルート配下のweb.configに、<authentication>要素を追加する必要がある。 ・・・Web.Configファイルというのは何を使って書くのですか?? メモ帳・・では書けませんよね??。 TeraPad・・でも書けませんよね??。 というか、アプリケーション・ルート配下のweb.configって、どこですか? ちなみに今WebMatrix ASP.NETをVB.NETで勉強中です。

  • 回復コンソールとライセンス認証

    DELL製 WinXpプリインストール ノートパソコンです。 レジストリの上書きに失敗し以下のようなエラーが出て回復コンソールで回復しました。 「\windows\system32\config\systemが破損しています。回復コンソールで修復できます。」 方法は以下のページを参考にしました。 http://support.microsoft.com/default.aspx?scid=/directory/worldwide/ja/kblight/t008/6/11.asp その後「ようこそ」の画面でログイン(管理者権限で)しようとパスワードを入力すると 「ログインの前に、windowsのライセンス認証が必要です。認証しますか?」 と聞かれ「はい」を押しても「いいえ」を押してもログインしそうな雰囲気を見せて「ようこそ」の画面に戻ってしまいます。 どうしたら良いでしょう。力を貸してください。

  • ASP.net 4.0 のコードビハインド

    ASP.net 1.1以来、久しぶりにASP.net 4.0を触っています。 新規作成→プロジェクト→ASP.net Web アプリケーションとクリックしてできる雛形のプロジェクトでは、Login.aspxのログインボタンをクリック→『SQLサーバーをみにいく』という動作になっています。 この『SQLサーバーをみにいく』イベントに対応するコードはどこに記載されてるのでしょうか?? 1.1のときはLogin.aspx.csに protected void LoginButton_Click(object sender, EventArgs e) {    『SQLサーバーをみにいく』 } だったように記憶しています。 ところが上記雛形プロジェクトではLogin.aspx.csにはなにも記載されていないです?! ご存知のかたおられましたらよろしくお願い申し上げます。

  • ISA RADIUS認証サーバとContivity

    ノーテルのContivity600の外部認証サーバにIASを使いたいのですが、認証が成功しません。どなたか詳しい方いらっしゃいますか? result: -5, message: Invalid reply digest from server, いつもRADIUS認証サーバの応答が-5となってしまいます。 possible shared secret mismatch というコメントが出てますが、何度も確認したので間違っていませんk。他に-5になるのはどういう場合あるんでしょうか? ISAKMP [02] Oakley Aggressive Mode proposal accepted from remote host Security [11] Session: IPSEC[ooooo] attempting login Security [11] Session: IPSEC[ooooo] logged into group /Base/test Security [01] Session: IPSEC[ooooo]:536 PAP authenticate attempt... Security [01] Session: IPSEC[ooooo]:536 attempting authentication using RADIUS Security [11] RADIUS: verified server reply, result: -5, message: Invalid reply digest from server, possible shared secret mismatch. Security [12] RADIUS: "10.142.50.1" sent packet with invalid response authenticator for "ooooooooooooooooooo". Security [13] Session: IPSEC[ooooo]:536 authentication failed using RADIUS Security [13] Session: IPSEC[ooooo]:536 - authentication failed using all authservers tPoolTask25 [34] Failed Login Attempt: Username=ooooo: Date/Time=03/01/2005 18:36:11 ISAKMP [13] Authentication failure in message from Remote host ISAKMP [02] Deleting ISAKMP SA with Remote host