none
Visualstudioでの開発をしていますsqlのデータでログインやログアウトのページを作りたいのですが RRS feed

  • 質問

  • sqlデータベースにpasswordとuser名のデータがあり、その中で一致したら次のページに遷移して一致していないと別ページに遷移しuser名かパスワードが違いますとエラーを出したいのですがよくわかりません。

    TextBox1 がuser名

    TextBox2 が password

    user名がありpasswordが一致なら ログイン成功ページへ

    VBで開発していますのでできればVBでのソースを教えてもらいたいのですが、

    sqlのデータソースのパラメーターにuser名テーブルでコントロールtextBox1を登録などしてみましたが、思うように行きません

    お願いします

    2016年4月25日 1:56

すべての返信

  • ASP.NET のフォーラムで質問しているということは、質問者さんが作っているのは ASP.NET Web アプリで、フォーム認証を実装したいという理解でいいですか?

    その理解が正しいとして・・・

    ASP.NET Web Forms アプリでも、ASP.NET MVC アプリでも、Visual Studio でインターネットアプリ用のテンプレートを使って雛形(プロジェクト)を作れば、それにフォーム認証用のページとビジネスロジックのコードが一式自動生成されて実装されるので、それを見ることをお勧めします。

    研修とか学校の課題などで、自力で実装することを求められているということであれば、face-to-face で質問できる先生に助言を求めることをお勧めします。質問文からは、失礼ながら、ここのような掲示版では、ご自分の環境ややりたいこと(即ち、回答者が必要な情報)を伝えるのが難しい初学者の方のようにお見受けしますので。


    • 編集済み SurferOnWww 2016年4月25日 2:24 誤字訂正
    2016年4月25日 2:23
  • 回答ありがとうございますASP.NET Web アプリで フォーム認証を実装したいという理解で正しいです

    もうしわけないです体を壊し、自宅での開発のためface-to-faceが不可能でして

    簡単に説明するとログインツールを貼り付けて、そのログインボタンを押した時にsqldataを呼び出して入力されたIDとpwがレコードにあればページ遷移という形をとれればいいのですが

    入力されたsqlのIdとpwがあるかないかの判断をどのようにすればいいのかわからなくて・・・。

    今自分は

    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString1 %>"SelectCommand="SELECT [id], [pw] FROM [user] WHERE (([ID] = @ID) AND ([pw] = @pw))" 
     <SelectParameters>
                    <asp:ControlParameter ControlID="TextBox1" Name="ID" PropertyName="Text" Type="String" />
                    <asp:ControlParameter ControlID="TextBox2" Name="pw" PropertyName="Text" Type="Int16" />
                </SelectParameters>

    このような状態なのですが、考え方あってますかね・・・

    ボタンのclickイベントでどのようにソースを書けばsqlデータベースでのIDとpwの認証をすることができるのでしょうか・・・お力添えをお願いします。

    2016年4月25日 2:56
  • > 自宅での開発のためface-to-faceが不可能でして

    そうであっても、先の私のレスに書いた、

    "ASP.NET Web Forms アプリでも、ASP.NET MVC アプリでも、Visual Studio でインターネットアプリ用のテンプレートを使って雛形(プロジェクト)を作れば、それにフォーム認証用のページとビジネスロジックのコードが一式自動生成されて実装されるので、それを見ることをお勧めします。"

    で十分な情報が得られると思いますが。それができない事情はないですよね?


    > このような状態なのですが、考え方あってますかね・・・

    提示されたコードだけでは、入力パラメータと id と pw が一致するレコードがあれば、user テーブルからその pw と id が抽出できる・・・のではないかと読めるだけです。

    一番最初の質問で、

    > sqlデータベースにpasswordとuser名のデータがあり、その中で一致したら次のページに遷移して
    > 一致していないと別ページに遷移しuser名かパスワードが違いますとエラーを出したい

    とありましたが、提示された部分的なコードでそれができるかは誰も分かりません。それを行うにはどういうコードを書いたら良いかという質問は、ここのような掲示板で聞くのはちょっと重過ぎます。

    2016年4月25日 3:28
  • 【追伸】

    デフォルトの SQL Server データベース(ASPNETDB.MDF)と SqlMembershipProvider(ASPNETDB.MDF と ASP.NET フォーム認証の間を取り持つプロバイダ)を使わないで、それに代えてカスタムメンバーシッププロバイダを作って実装するための資料やサンプルコードがありますので紹介しておきます。これが質問者さんの求めている情報に近いかもしれません。

    メンバシップ プロバイダの実装
    https://msdn.microsoft.com/ja-jp/library/f1kyba5e%28v=vs.100%29.aspx

    サンプル メンバシップ プロバイダの実装
    https://msdn.microsoft.com/ja-jp/library/44w5aswa%28v=vs.100%29.aspx

    方法 : サンプル メンバシップ プロバイダを実装する
    https://msdn.microsoft.com/ja-jp/library/6tc47t75%28v=vs.100%29.aspx


    ASP.NET に組み込まれているフォーム認証の仕組みを使わないで、ゼロから自力でコードを書いて同等の仕組み全てを実装するというのは無理ですが(少なくとも自分には)、カスタムメンバーシッププロバイダ部分の実装だけならかなり敷居が低くなって現実的です。それでもかなりの知識がないと難しいですが・・・


    • 編集済み SurferOnWww 2016年4月25日 9:21 一部変更
    2016年4月25日 9:19