0

我尝试编写一个带有 web 服务的网站。我的登录页面代码是:

 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 文件中。

4

2 回答 2

0

由于您添加了集成安全性 = true sql server 使用当前的 Windows 帐户凭据进行身份验证。您想要使用的是表单中的用户名和密码。

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

public class Util
  {

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

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

于 2013-08-20T09:05:54.060 回答
0

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

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

于 2013-08-20T08:37:09.100 回答