DOBON.NET DOBON.NETプログラミング掲示板過去ログ

ASP.NET-VBでユーザー認証機能を作るには

環境/言語:[Win2000 VS.NET2003]
分類:[ASP.NET]

始めましてGamblerと申します。
現在ASP.NET VBにてスケジュール管理のようなものを作っています。
具体的に言いますとメインの初期実行画面はこのようになっており↓

http://hiyokokko.s78.xrea.com/s1.jpg

予定ボタンを押すと右側にカレンダーが表示され現在の日は黄色で予定の入っている日はオレンジ色になっています(現在選択しているのは12月2日)
そこで下のテキスト欄にメッセージを入れて保存ボタンを押すとデータベースに保存されるようになっています。

実際に保存されているデータベースにはこのように入っております↓

http://hiyokokko.s78.xrea.com/s2.jpg

@がユーザーの情報の入っているテーブルでAがユーザーIDと日時とスケジュールの入っているものになります。

しかし現状では登録者のスケジュールが全部見えてしまい全く実用性がありません。
そこでユーザー認証機能をつけようと考えたのですが試行錯誤しても成功しなかったのでこの場において質問させていただきました。
考えているのは下のURLの@にあるyIDとpassというのを使ってやると思うのですがうまくいきませんでした。

何かアドバイスいただけないでしょうか?

念のためコード全部もアップしておきます↓
http://hiyokokko.s78.xrea.com/Stage5.zip

以上宜しくお願いいたします。
> 考えているのは下のURLの@にあるyIDとpassというのを使ってやると思うのですがうまくいきませんでした。

どこがどううまく行かないのでしょうか? アップされたコードをざっと見てみましたが、ユーザー認証らしきところを見つけられませんでした。
SQLでWhere句もなく全件取得していれば
それは該当ユーザ以外のデータもでちゃうもんですよ・・・。

で、余計なことかもしれませんが、
スケジュールテーブルの主キーは何でしょう?
スタッフIDと日付だったら、1日に対し1つのスケジュールしか入らなくなる・・・。
そういう設計だとおっしゃるのであれば良いんですけど。
返信が遅くなり申し訳ありませんでした。

>どこがどううまく行かないのでしょうか? アップされたコードをざっと見てみましたが、ユーザー認証らしきところを見つけられませんでした。

ユーザー承認のページを作る過程でデザインページくらいは作ったのですが「ログイン」ボタンを作ったくらいでコードとSQLの方が良く分からず消してしまいました。

> SQLでWhere句もなく全件取得していれば
> それは該当ユーザ以外のデータもでちゃうもんですよ・・・。

現在は選択クエリでWhere句を使わずに全件取得している状態なので全て出てしまいます。この時にyIDとpassが同じだった場合に表示すると言うようにしかったのですが良く分かりませんでした。


> で、余計なことかもしれませんが、
> スケジュールテーブルの主キーは何でしょう?
> スタッフIDと日付だったら、1日に対し1つのスケジュールしか入らなくなる・・

tblScheduleの主キーは現在IDと日付なので仰るとおり1日1件のスケジュールしか入らないのが現状です。ユーザー承認機能が出来てから修正を考えています。

> そういう設計だとおっしゃるのであれば良いんですけど。
そういう設計と言うわけではなく本当は一日に何件も入れたいところですが作ってから気がついたので今後修正していく予定でいます。


このような分かりにくい説明で申し訳ありませんが何かアドバイスの方宜しくお願いいたします(*- -)(*_ _)
お世話になります。

■No14325に返信(Gamblerさんの記事)
Gambler さんが具体的にどうされたいのか
書いていただけないと、誰も回答できないですよ。

ユーザー承認のページは、ユーザーに何を入力させて(例えば ID とか名前とか)
どのタイミングか(例えばログインボタンをクリックした時...とか)

>>スケジュールテーブルの主キーは何でしょう?
>>スタッフIDと日付だったら、1日に対し1つのスケジュールしか入らなくなる・・
>
> tblScheduleの主キーは現在IDと日付なので仰るとおり1日1件のスケジュールしか入らないのが現状です。ユーザー承認機能が出来てから修正を考えています。
>
>>そういう設計だとおっしゃるのであれば良いんですけど。
> そういう設計と言うわけではなく本当は一日に何件も入れたいところですが作ってから気がついたので今後修正していく予定でいます。
主キーを後から変更するのは、色々影響が出て大変だと思うので、
どうせやるつもりなら、今からやっちゃったほうが宜しいかと思うのですが...。
返信遅くなり申し訳ありませんでした。

> ユーザー承認のページは、ユーザーに何を入力させて(例えば ID とか名前とか)
http://hiyokokko.s78.xrea.com/s2.jpg
にあるyIDとpassを入力して承認できたらいいなと考えております。

> どのタイミングか(例えばログインボタンをクリックした時...とか)
タイミングについては
http://hiyokokko.s78.xrea.com/s3.jpg
のようなページをTOPページにしてログインボタンを押した時に下のURLのように全員分のスケジュールが出るのではなくログインした人個人のスケジュールを出したいと思っています。
http://hiyokokko.s78.xrea.com/s1.jpg

> 主キーを後から変更するのは、色々影響が出て大変だと思うので、
> どうせやるつもりなら、今からやっちゃったほうが宜しいかと思うのですが...。
tblScheduleの主キーをScheduleNotesにしてみたら1日に2件の予定を入れるときに改行して入力すれば2件入れることが出来たのでコレでokと言うことにしちゃいました。今回メインに頑張りたいのはユーザー承認機能の方の物で・・(データベースの方にも改行されて入っていました)

ログイン関係のページのコードも必要なSQLも何をどうするればいいのか分からなかったのでまだ出来ていませんが同じURLですが
http://hiyokokko.s78.xrea.com/Stage5.zip
全コードの方も更新しておきました。


分かりにくい説明かと思いますが宜しくお願いいたします。
2005/12/30(Fri) 19:52:56 編集(投稿者)

お世話になります。

■No14331に返信(Gamblerさんの記事)
> 返信遅くなり申し訳ありませんでした。
>
>>ユーザー承認のページは、ユーザーに何を入力させて(例えば ID とか名前とか)
> http://hiyokokko.s78.xrea.com/s2.jpg
> にあるyIDとpassを入力して承認できたらいいなと考えております。
>
>>どのタイミングか(例えばログインボタンをクリックした時...とか)
> タイミングについては
> http://hiyokokko.s78.xrea.com/s3.jpg
> のようなページをTOPページにしてログインボタンを押した時に下のURLのように全員分のスケジュールが出るのではなくログインした人個人のスケジュールを出したいと思っています。
> http://hiyokokko.s78.xrea.com/s1.jpg
ログインに失敗したときはどうしますか?
それはおいといて、
ボタンをクリックしたときにチェックを走らせたいのであれば、
クリックした時のイベントで、
テキストボックスの値を受け取って認証ユーザーかどうか確認する SQL を
発行する必要がありますよね。
そしてその SQL を発行した結果により処理をわける必要がでてきますよね。

認証を行う SQL の一例としては、
SELECT COUNT(*) FROM tblStaff WHERE yID = 入力された値 AND PASS = 入力された値
を発行した結果をみて、1 だったら認証などの方法があります。
あけましておめでとうございます。
年末年始にかけてトラブルがあり見れなかったことをお詫び申し上げます。



> ボタンをクリックしたときにチェックを走らせたいのであれば、
> クリックした時のイベントで、
> テキストボックスの値を受け取って認証ユーザーかどうか確認する SQL を
> 発行する必要がありますよね。
> そしてその SQL を発行した結果により処理をわける必要がでてきますよね。
>
> 認証を行う SQL の一例としては、
> SELECT COUNT(*) FROM tblStaff WHERE yID = 入力された値 AND PASS = 入力された値
> を発行した結果をみて、1 だったら認証などの方法があります。

教えていただいた方法が成功すれば理想の物が出来上がりますがいきなりやるにはハードルが高すぎると言う感じがするので今回は個人専用のスケジュール帳から作っていくことにしました。(承認技術などが全く違うことも分かっています。)

そこで今回は
http://ja.gotdotnet.com/quickstart/aspplus/doc/formsauth.aspx
にある
http://ja.gotdotnet.com/quickstart/util/srcview.aspx?path=/quickstart/aspplus/samples/security/CookieAuth/cookieauth.src&file=VB\default.aspx&font=3
にあるVB\default.aspx VB\login.aspx VB\web.config を使って作ることにしました。

そこでweb.configの設定についてですがloginが成功した時はlogin.aspxというファイルに飛ぶと言うのは分かりました。
しかしここでユーザーを作ってログインさせるにはどうしたらよいのでしょうか?
<deny users="?" />
を変更すると思うのですがうまく動作しませんでした。
例えばユーザー名:test パスワード:pass
と言うユーザーがログインできるようにする場合のWeb.configの書き方など教えていただけたらありがたいです。

新年早々すみませんが宜しくお願いいたします。
お世話になります。

■No14334に返信(Gambler@変更さんの記事)
> あけましておめでとうございます。
おめでとうございます。

> 教えていただいた方法が成功すれば理想の物が出来上がりますがいきなりやるにはハードルが高すぎると言う感じがするので今回は個人専用のスケジュール帳から作っていくことにしました。(承認技術などが全く違うことも分かっています。)

そうですか...ごめんなさい。
どの辺りがハードルが高いと感じられたのか教えていただけると幸いです。

> そこで今回は
> http://ja.gotdotnet.com/quickstart/aspplus/doc/formsauth.aspx
> にある
> http://ja.gotdotnet.com/quickstart/util/srcview.aspx?path=/quickstart/aspplus/samples/security/CookieAuth/cookieauth.src&file=VB\default.aspx&font=3
> にあるVB\default.aspx VB\login.aspx VB\web.config を使って作ることにしました。
>
> そこでweb.configの設定についてですがloginが成功した時はlogin.aspxというファイルに飛ぶと言うのは分かりました。
> しかしここでユーザーを作ってログインさせるにはどうしたらよいのでしょうか?
> <deny users="?" />
> を変更すると思うのですがうまく動作しませんでした。
ちょっと今環境が手元にありませんので、試してませんが、
deny という単語の意味を調べるとお解りかもしれませんが、
否定する。という意味です。つまり、アクセスを許可しないユーザーを
定義しているんだと思います。

以下、蛇足です。

# 折角ユーザー管理のテーブルを Access で作られたのなら
# 勿体無いお話だとおもうのですが。
# 技術的にはそんなに難しくないと思いますので、
# (Select 文を データベースに発行し、結果を判定する事について)
# 是非、web.config のみでなく、 tblStaff テーブルで管理・承認される事を
# お薦めしたいです...。
新年早々からやることが多くていつも返信が遅くなってしまいすみません。

> どの辺りがハードルが高いと感じられたのか教えていただけると幸いです。

どの辺りのハードルかと言いますとSQLを発行して承認する辺りです。現状のプログラムも人に聞きながら作ったようなものなので自分だけでSQLを作るには良く分からないというのが本心です。
http://hiyokokko.s78.xrea.com/Stage5.zip
にアップしてあるコードから希望の物を作ってください。という訳にもいかず1から教えていただくのは悪いので今回はWeb.Configを使った承認するものを完成させてから教えていただいたSQLでの承認のものを作っていきたいと思います。


> ちょっと今環境が手元にありませんので、試してませんが、
> deny という単語の意味を調べるとお解りかもしれませんが、
> 否定する。という意味です。つまり、アクセスを許可しないユーザーを
> 定義しているんだと思います。

こちらについては自分でよく調べなおして頑張ってみます。


> 以下、蛇足です。
>
> # 折角ユーザー管理のテーブルを Access で作られたのなら
> # 勿体無いお話だとおもうのですが。
> # 技術的にはそんなに難しくないと思いますので、
> # (Select 文を データベースに発行し、結果を判定する事について)
> # 是非、web.config のみでなく、 tblStaff テーブルで管理・承認される事を
> # お薦めしたいです...。

一番上にも書いたとおりまずは簡易的なweb.configでの承認を完成させてから新たな物でSQLと tblStaffテーブルを使った承認機能を作ることにします。


この度は色々と教えていただき誠にありがとうございました。また何かありましたら是非宜しくお願いいたします。
(解決済みにチェックは入れておきますがコマめに掲示板はチェックしています)
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板