使用C#webservice登录屏幕问题

时间:2013-08-20 08:35:53

标签: c# web-services login connection

我尝试使用webservice对网站进行编码。 我的登录页面代码是:

 protected void button_Click(object sender, EventArgs e)
    {

        DBKariyerBL.User user = new DBKariyerBL.User();
        user.UserName = txtKlnAd.Text;
        user.Password = txtParola.Text;
        if (user.Login(user))
        {
            Session["LogIn"] = "1";
            Response.Redirect("Default.aspx");
        }
    }

和业务层中的User.cs页面是:

public class User
    {
        public string UserName { get; set; }
        public string Password { get; set; }

        SqlConnection conn = new SqlConnection(Util.ConnectionString);

        public bool Login(User user)
        {
            return Convert.ToInt32(SqlHelper.ExecuteScalar(conn, CommandType.Text, "SELECT COUNT(*) FROM Users WHERE UserName=@UserName AND Password=@Password", new SqlParameter[] { new SqlParameter("@UserName", user.UserName), new SqlParameter("@Password", user.Password) })) > 0;
        }


    }

我的User.asmx页面如下:

public class User : System.Web.Services.WebService
{

    [WebMethod]
    public bool Login(DBKariyerBL.User user)
    {
        DBKariyerBL.User kull = new DBKariyerBL.User();
        return kull.Login(user);
    }
}

我有一个用于SQL连接的Util.cs:

public class Util
{

    public static string ConnectionString
    {
        get { return ConfigurationManager.ConnectionStrings["SqlConnection"].ConnectionString; }
    }
}

当我在本地服务器上运行此项目时,工作正常,但是当我尝试将此代码放入我的测试服务器时,它会给出一个错误页面:

  

无法打开登录请求的数据库“DenizBankKariyerDB”。登录失败。   用户'IIS APPPOOL \ DenizKariyer'登录失败。

我被困住了。我认为问题出在我的Util.cs文件中。

2 个答案:

答案 0 :(得分:0)

错误很明显:您尝试连接的数据库的连接字符串中提供的登录无效。用户不存在,或者他们没有应用于目录的权限,或者密码不正确等等。

解决此问题的方法是检查数据库,确认用户详细信息,并相应地在连接字符串中应用它们。

答案 1 :(得分:0)

因为你添加了integrated security = true,所以sql server使用当前的Windows帐户凭据进行身份验证。你想要使用的是表单中的用户名和密码。

因此,不要使用配置中的连接字符串尝试使用类似的东西。

public class Util
  {

public static string ConnectionString
{
    get { return  "Data Source=ServerName;" +
"Initial Catalog=DataBaseName;" +
"User id=UserName;" +
"Password=pwd;"; }
}
}

你可以有一个方法,将服务器,用户名,密码作为参数。