- PR -

ACCESS&ASP.NETログイン認証。

投稿者投稿内容
にしお
常連さん
会議室デビュー日: 2003/12/01
投稿数: 44
投稿日時: 2003-12-01 22:15
初めて投稿させていただきます。にしおと申します。
早速ですが、私はACCESSとASP.NET、C#を使用しているのですが、
よくある、パスワードとIDが合っていれば次のページに飛ぶという処理があると思うのですが、
テーブルクラス(Userinfo Table)を使用し、
string cnstring=(string)Applivathion["ConnString"];
UserinfoTable myUser=new UserinfoTable(cnstring,txtmail.text);
if (!myUser.IsNew)
{
if (myUser.Authenticate(txtPass.text))
{
FormAuthenticathion.RedirectFormLoginPage(myUser.Mailaddress,false);
Session["UserInfo"]=myUser;
}
}
みたいな感じでできると、聞いた&ヘルプをみてわかってきたのですが、ACCESSを使用し、そこの中のテーブルのIDとPassを持ってきて、判定するやり方が、いまいちよくわかりません。
まだまだかけだしですので、ひとつご協力のほどよろしくお願いいたします。
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2003-12-01 23:06
こんにちわ。諸農です。

引用:

にしおさんの書き込み (2003-12-01 22:15) より:

みたいな感じでできると、聞いた&ヘルプをみてわかってきたのですが、ACCESSを使用し、そこの中のテーブルのIDとPassを持ってきて、判定するやり方が、いまいちよくわかりません。



ACCESSへの接続方法がわからないのでしょうか?
となると、ADO.NETに関してもHELPを探されることをお勧めします。

SDKトピック「ADO.NET の概要」
ms-help://MS.NETFrameworkSDKv1.1.JA/cpguidenf/html/cpconoverviewofadonet.htm

SDKトピック「ASP.NET データ アクセス」
ms-help://MS.NETFrameworkSDKv1.1.JA/cpguidenf/html/cpconaspdataaccess.htm

のあたりが参考になるかもしれません。

ではでは(^^)/
_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
にしお
常連さん
会議室デビュー日: 2003/12/01
投稿数: 44
投稿日時: 2003-12-02 01:46
なるほど!ADOについてはみていませんでした。
ありがとうございます。
にしお
常連さん
会議室デビュー日: 2003/12/01
投稿数: 44
投稿日時: 2003-12-02 02:49
いろいろ読んでみたのですが、いまいちしっくりきません。
アクセスレコード数はコネクションを開いてその間に処理を書くという形だとはわかっていて、恐らくそのような形で今回もやるのだとは思うのですが、
コネクションを開く
データセットクリア
if(!dateadapter.SelectCommand.Parameters["フィールド名"].Value==テキストボックスの値)
{
次のページへ
}
という形でしょうか・・・。
やってみても動かないので、明らかに間違っていることはわかっているのですが…。
恐らくif文の式が・・・。
sachiko
常連さん
会議室デビュー日: 2003/11/26
投稿数: 36
投稿日時: 2003-12-02 02:56
{
int flg ;
flg = 0;

if(pwd_e.KeyChar == (char)13)
{
string DB = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=**.mdb";
string SQL = "SELECT * FROM Login";

OleDbConnection Con = new OleDbConnection(DB);
OleDbCommand Cmd = new OleDbCommand(SQL,Con);
OleDbDataAdapter Adapter = new OleDbDataAdapter(Cmd);

Con.Open();

DataSet Rs = new DataSet();
Rs.Tables.Add("Login");

try{Adapter.Fill(Rs,"Login");}
finally{Con.Close();}

DataRowCollection Rs_Row = Rs.Tables["Login"].Rows;
foreach (DataRow DR in Rs_Row)
{
if((DR[1].ToString() == txt_id.Text) && (DR[2].ToString() == txt_pwd.Text))
{
flg = 1 ;
break ;
}
}

if (flg == 1)
{
// MessageBox.Show("OK");
this.Text = "***";
grp_view.Show();
grp_login.Hide();
mnu_f.Visible = true;
} else {
txt_id.Text = "";
txt_pwd.Text = "";
txt_id.Focus();
}

Con.Close();
}
こんな感じでしょうか?
私も初心者であんまり自信がないので、ほかの人の意見も伺ってください。
にしお
常連さん
会議室デビュー日: 2003/12/01
投稿数: 44
投稿日時: 2003-12-02 04:44
Con.Open();
try{Adapter.Fill(Rs,"会員名簿マスタ");}
finally{Con.Close();}

DataRowCollection Rs_Row = Rs.Tables["会員名簿マスタ"].Rows;
foreach (DataRow DR in Rs_Row)
{
if ((text1.Text == DR[1].ToString()) && (text2.Text == DR[2].ToString()))
{
Response.Redirect("a.aspx");
}
else
{
text1.Text = "" ;
text2.Text = "" ;
}
}
って感じでやったら、if ((text1.Text == DR[1].ToString()) && (text2.Text == DR[2].ToString()))の所で、オブジェクト参照がオブジェクト インスタンスに設定されていません。 というエラーが出ます。
このヘルプ等をみてみたのですが、よく原因がわかりません。
どうやらnill値が入っているようなのですが、お力をお貸しください。

Ru.F
会議室デビュー日: 2003/11/21
投稿数: 17
投稿日時: 2003-12-02 11:19
こんにちは、Ru.Fと申します。

会員名簿マスタというテーブルはどのようなものでしょうか?
IDとPasswordの2列のみですか?

エラーの出ている以下のラインですが、
if ((text1.Text == DR[1].ToString()) && (text2.Text == DR[2].ToString()))

"(text1.Text == DR[1].ToString())"と"(text2.Text == DR[2].ToString())"
両方ともエラーが出ますか?
それとも後者だけでしょうか。

確認してみてください。

以上
にしお
常連さん
会議室デビュー日: 2003/12/01
投稿数: 44
投稿日時: 2003-12-02 19:08
両方エラーが出ます。
ちなみに、テーブルはそのIDとPassの二つだけです。

スキルアップ/キャリアアップ(JOB@IT)