1

ASP.net を使用して Web アプリケーションを開発しています。アプリケーションのログイン ページで、指定されたユーザー名とパスワードをデータベースの値でusernameチェックし"Admin"password"Password"ます。"admin" as username"password" as password

パスワードは大文字と小文字を区別する必要があります。私がインターネットを介して行ったとき、私はのCollationプロパティを変更するようないくつかのポイントを得ましたCI(CaseInsensitive) to CS(Case Sensitive).....これはデータベース全体のためだと思います....私はこれをデータベース全体に設定するのは好きではありません.ユーザー名とパスワード..

可能ですか、ここで誰か助けてくれませんか...

のようにしようとしています

DataObject.Entities dataEntities=new DataObject.Entities();
DataObject.Users user=dataEntities.Users.Where(u=>u.UserName==UserName && u.Password==Password);

if(user != null)
// link to home page.
else
//login failed.
4

4 に答える 4

3

以下を使用してみてください。

select username, password from users collate SQL_Latin1_General_Cp1_CS_AS

コメントに記載されているように、パスワードをプレーンテキストで保存しないでください。すぐに使用できる SQL メンバーシップ プロバイダーを使用しないのはなぜですか?

于 2012-04-21T17:23:17.537 に答える
3

なぜデータベースでこれを行うのですか?データベース内のパスワードは平文ではなく、セキュリティ上の理由から暗号化する必要があります。パスワードを照会し、復号化し、アプリ自体で比較します...

于 2012-04-21T17:25:45.553 に答える
3

ひどいことをしているようですね。パスワードに適切な暗号化ハッシュ関数を使用した場合、これはまったく問題になりません。

パスワードを保存するときは、実際のパスワードではなく、ハッシュしてデータベースに保存する必要があります。

于 2012-04-21T17:26:02.357 に答える
3

Xander's answer は、大文字と小文字を区別しない比較を行う方法を説明しています。

ただし、平文のパスワードをデータベースに保存するべきではありません。代わりに、パスワードのハッシュを保存します。SQL Server は、HashBytesそれを支援する機能を提供します。

select HashBytes('SHA1', 'YourPassword');

詳細な説明については、この回答を参照してください。

于 2012-04-21T17:27:08.143 に答える