asp.net网站SQL连接

时间:2016-01-14 10:13:30

标签: c# asp.net sql-server web

我在让我的ASP.NET站点使用SQL登录时遇到问题,这里有一些代码(Login.ASPX.CS);

        private bool ValidateCredentials(string userName, string password)
    {
        bool returnValue = false;

        if (this.IsAlphaNumeric(userName) && userName.Length <= 50 && password.Length <= 50)
        {
            SqlConnection conn = null;

            try
            {
                string sql = "select count(*) from dbo.Users where UserName = '@username' and password = '@password'";

                conn = new SqlConnection(ConfigurationManager.ConnectionStrings["MembershipSiteConStr"].ConnectionString);
                SqlCommand cmd = new SqlCommand(sql, conn);

                SqlParameter user = new SqlParameter();
                user.ParameterName = "@username";
                user.Value = userName.Trim();
                cmd.Parameters.Add(user);

                SqlParameter pass = new SqlParameter();
                pass.ParameterName = "@password";
                pass.Value = Hasher.HashString(password.Trim());
                cmd.Parameters.Add(pass);

                conn.Open();

                int count = (int)cmd.ExecuteScalar();

                if (count > 0) returnValue = true;
            }

这是我的web.config连接字符串

  <connectionStrings>
<add name="MembershipSiteConStr" connectionString="Data Source=dev-pc\;Initial Catalog=MembershipSite;User ID=test;Password=test" />

我使用服务器资源管理器和SQL管理测试了这个SQL连接,一切正常。

这里有一些SP正在发生的事情;

enter image description here

这里有证据表明用户和通过im放入应该工作;  用户在那里:

enter image description here

SQL查询有效:

enter image description here

2 个答案:

答案 0 :(得分:2)

更改添加密码参数的代码如下

 SqlParameter pass = new SqlParameter();
 pass.ParameterName = "@password";
 //pass.Value = Hasher.HashString(password.Trim());
 pass.Value = password.Trim(); 
 cmd.Parameters.Add(pass);

答案 1 :(得分:0)

我认为你需要在connectionStrings

设置提供者名称
 <connectionStrings>
<add name="MembershipSiteConStr" connectionString="Data Source=dev-pc\;Initial Catalog=MembershipSite;User ID=test;Password=test" providerName="System.Data.SqlClient" />