2012-03-01 22 views
-1

SQLデータベースで使用したユーザー名とパスワードだけを登録せずに、簡単なログインページを作成したいと思います。これは私が今button1に書いたものです:簡単なログインページの作成方法は?

string connection_string = "Path to database"; 
SqlConnection connect = new SqlConnection(); 
connect.ConnectionString = connection_string; 
connect.Open(); 
string sql = "Select * FROM Register where [email protected] and [email protected]"; 
SqlCommand 1 = new SqlCommand("username",textbox1User.text); 
SqlCommand 2 = new SqlCommand("password",textbox2pass.text); 

これは私が今持っているものです。私はログインページの残りの部分を行う必要があり、値がOKならば、私はページにリダイレクトされます。しかし、私はまた、ファイルを入力するだけで他のユーザーがアクセスできないようにページを保護する方法を知る必要があります。だから私はログインする場合にのみ動作するはずです。

+0

パスワードをプレーンテキストで保存しないでください。 – SLaks

+3

ASP.Netの組み込みメンバーシップとフォーム認証システムを使用する必要があります。車輪を、特に安全のために再発明しないでください。 – SLaks

+0

new at C#?または開発者として? –

答えて

6

まず、SQLにパラメータを使用したいことをお祝いします。多くの初心者はこれをしないので、ひどいSQLインジェクション攻撃につながります。

第2に、本当にあなたのパスワードをハッシュする必要があります。プレーンテキストのパスワードは決して保管しないでください。パスワードを正確にハッシュすることは、多くの議論の問題であり、コードを複雑にするので、私はこれを今のところ別に設定します。

今、実際の質問に移動します。まず、コードにいくつか間違いがあります。そのことを

(それはに入るために良い習慣だ使用方法の詳細のためhttp://msdn.microsoft.com/en-us/library/yh598w02.aspxを参照してください。)

using(SqlConnection conn = new SqlConnection("connection string")) 
{ 
    SqlCommand cmd = new SqlCommand("Select * FROM Register where [email protected] and [email protected]", conn); 
    cmd.Parameters.AddWithValue("@username", textbox1User.Text); 
    cmd.Parameters.AddWithValue("@password", textbox2User.Text); 
} 

:最初に何を持っていることは、この線に沿ってより多くする必要があり、パラメータが間違って作成されています簡単ログインを検証するために、行って、あなたはあなたのSqlCommandオブジェクトのためにこのような何かを行うことができます。

0:

SELECT COUNT(*) FROM Register WHERE [email protected] AND [email protected] 

をそしてパラメータを追加した後、あなたのコードにこれを追加しますが、using上の閉じ括弧の前に厳密に1人のユーザーが見つかった場合

conn.Open();  
int result = Convert.ToInt32(cmd.ExecuteScalar()); 

resultは(あなたが同じユーザー名を持つ複数のユーザーを持つことができる場合は、この範囲外の他の問題がある)0にユーザーが見つからなかった場合、または1になります。

ここで、アクセス制御の実施については、http://support.microsoft.com/kb/301240をご覧ください。興味のある用語は、「フォーム認証」と「web.config認証」です。提供されたリンクのコードサンプルは少し古くなっていますが、一般に、あなたが求めていることを達成する方法を示しています。

これで、正しいトラックをスタートさせることができます。

-1

また、HTACCESSを使用して内容やパスワードを制御して保護することもできます。これは、SQLとパスワードの保存を心配する必要がないため、最も簡単な方法です。

+2

質問はASP.Netに関するもので、初心者の質問ですが、ApacheでMonoを実行していると疑いがあります。これは.htaccessが役に立ちます。 –

+0

はい、彼はユーザーが登録する必要はないと言ったので、htaccessが最適です。 Didnt 'それはASP.NETのために働いていない知っている –

関連する問題