2017-06-08 10 views
0

ログイン時に入力したユーザー名をテーブルのログイン詳細に保存しようとしています。私は、アプリケーションにログインしようとしているユーザーを追跡しています。 conn.Openでコードがクラッシュするこれで私を助けてください。前もって感謝します。ここでデータベーステーブルに入力されたユーザー名を格納する方法

は私がにHomeControllerに書かれているコードは次のとおりです。

public ActionResult Login(LoginViewModel model, string returnUrl) 
     { 


      if (!ModelState.IsValid) 
      { 
       return View(model); 
      }      
      var wwid = ActiveDirectoryUserHelper.returnWWid(model.UserName, model.UserName.Substring(model.UserName.IndexOf("\\")+1), model.Password); 
      if(wwid==null) 
      { 
       ModelState.AddModelError("", "Invalid login attempt."); 
       return View(model); 
      } 
      else 
      { 
       Session["UserId"] = model.UserName.Substring(model.UserName.IndexOf("\\") + 1); 
       Session["UserPassword"] = model.Password; 
       ViewBag.userId = Crypto.EncryptData(model.UserName.Substring(model.UserName.IndexOf("\\") + 1)); 
       ViewBag.pwd = Crypto.EncryptData(model.Password); 
      } 

      SqlConnection conn = new SqlConnection(@"data source = XYZ,1433;initial catalog=Application;integrated security=True"); 

      string sql = "INSERT INTO LoginDetails (username) values (@username)"; 
      conn.Open(); 
      SqlCommand cmd = new SqlCommand(sql, conn); 
      cmd.Parameters.Add("@username", System.Data.SqlDbType.VarChar, 50).Value = model.UserName; 
      //cmd.Parameters["@username"].Value = model.UserName; 
      cmd.ExecuteNonQuery(); 

      return View("Management"); 

     } 
+0

いくつかの偽の接続文字列を貼り付けていますか? –

+0

ここで私は接続文字列を変更しました.. – beginner

+2

'conn.Open'がクラッシュした場合、接続文字列が間違っている可能性が高いです –

答えて

0

何かは、使用している接続文字列が間違っているように見えます。

正しいServerNameとデータベース名を渡していることを確認してください。

また、Windows認証を使用するか、データベースにログインするようにユーザーを設定するかを再確認してください。あなたはまた、接続文字列についての詳細を知るには、以下のURLを確認することができます

https://msdn.microsoft.com/en-us/library/jj653752(v=vs.110).aspx

https://www.connectionstrings.com/sql-server/

それでもエラーに直面している場合は、ここでエラーの詳細を共有してください。

+0

私はまだ接続でSystem.InvalidOperationExceptionを取得しています – beginner

+0

https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.open(v=vs) .110).aspx –

1

これをコードの先頭に入れます。

using System.Web.Configuration; これをWeb.Configに入れます:

<connectionStrings > 
<add 
    name="myConnectionString" 
    connectionString="Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;" 
    providerName="System.Data.SqlClient"/> 
</connectionStrings> 

and where you want to setup the connection variable: 

SqlConnection con = new SqlConnection(
WebConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString); 
+0

私はSQL接続の使用法を明確にしたので、このソリューションに感謝します。しかし、私はまだ "System.invalidOperationException"としてSqlConnection conで例外を取得しています – beginner

関連する問題