我正在尝试将登录期间输入的用户名存储在表登录详细信息中。我正在跟踪尝试登录应用程序的用户。我的代码在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 :(得分:1)
将它放在代码的顶部:
使用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);
答案 1 :(得分:0)
您正在使用的连接字符串看起来有问题。
确保传递正确的ServerName和数据库名称。
另外,请仔细检查是否要使用Windows身份验证或在数据库中配置任何用户登录。
您还可以查看以下网址,了解有关连接字符串的更多信息:
https://msdn.microsoft.com/en-us/library/jj653752(v=vs.110).aspx
https://www.connectionstrings.com/sql-server/
如果您仍然遇到错误,请在此处分享错误详情。