我尝试使用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文件中。
答案 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;"; }
}
}
你可以有一个方法,将服务器,用户名,密码作为参数。