2017-08-29 10 views
0

EFなしでASP MVCに登録およびログインページを作成しようとしています。EFを使用しないASP MVCでのログイン/登録ページの作成方法

私は、このソリューションを書いたが、私はいつも、「接続」と「コマンド」は、現在のコンテキスト内に存在しないというエラー受け取る:、C#ので

public ActionResult Login(Client cmodel) 

    public string GetPassword(string email) 
    { 
     using (connection = new SqlConnection(ConfigurationManager.AppSettings["deliverycon"])) 
     { 
      using (command = new SqlCommand(@"select top 1 password from clients where [email protected]", connection)) 
      { 
       connection.Open(); 
       command.Parameters.AddWithValue("@email", email); 
       using (reader = command.ExecuteReader()) 
       { 
        reader.Read(); 
        return reader["password"].ToString; 
       } 
      } 
     } 
    } 
+1

var接続、varコマンド、varリーダーを試してください – derloopkat

+0

次にSqlConnection接続とSqlCommandコマンドを宣言し、最後にSqlDataReaderを宣言する必要があります。 –

+0

ありがとう!しかし、問題は私は文字列に文字列に変換することはできません – Exact

答えて

2

あなたがそれらに割り当てる前に、あなたは変数を宣言する必要がありますusingステートメント内であっても。コンパイラはmyValueは現在のコンテキスト内に存在しないことに文句を言うでしょう

myValue = 10; 

:あなたは基本的にこの同等のものを行っています。ソリューションを使用すると、単一のコード行を行うことができ、変数を宣言し、それを割り当てることです:

int myValue = 10; 

あなたが実際にconnectionまたはcommandまたはreaderのためにあなたの変数を宣言したことはありません。 SqlConnectionSqlCommandSqlDataReaderと宣言するか、use the implicit varとする必要があります。

この例では、両方のタイプを示しています。明示的にそれは不明だ時に型が頻繁に使用されていると言っている間タイプは、文脈から明らかであるとき

public string GetPassword(string email) 
{ 
    using (SqlConnection connection = new SqlConnection(ConfigurationManager.AppSettings["deliverycon"])) 
    { 
     using (var command = new SqlCommand(@"select top 1 password from clients where [email protected]", connection)) 
     { 
      connection.Open(); 
      command.Parameters.AddWithValue("@email", email); 

      using (var reader = command.ExecuteReader()) 
      { 
       reader.Read(); 
       return reader["password"].ToString; 
      } 
     } 
    } 
} 

varがしばしば使用されています。

また、パスワードを平文でデータベースに保存しているようです。これはひどい考えです。パスワードは一方向ハッシュとソルトにする必要があります。あなたが何をしているのかわからない場合は、自分のセキュリティシステムをロールするのは良い考えではありません。

+0

ありがとうメーソンそれは動作します、私は今読者にしか問題がありません – Exact

+2

@Exactまあ、私はあなたが接続とコマンドの修正からそれを理解できたと思っていただろうが。 – mason

+0

ok私は感謝を試みます – Exact

関連する問題