我有一个简单的登录功能:
private bool AdminIsValid(string username, string password)
{
bool isValid = false;
using (var db = new AdminEntities())
{
var admin = db.users.FirstOrDefault(u => u.password.Trim() == password);
if (admin != null)
{
if (admin.uname.Trim() == username)
{
isValid = true;
}
}
}
return isValid;
}
我像这样使用:
protected void LoginButton_Click(object sender, EventArgs e)
{
if (AdminIsValid(LoginUser.UserName, LoginUser.Password))
{
FormsAuthentication.SetAuthCookie(LoginUser.UserName, false);
Response.Redirect("../");
}
else
{
//"Log in data failed"
}
}
它仅在登录成功时有效,当登录失败时,我收到此错误:
由于 启动用户实例的进程。连接将是 闭。
在执行 当前网络请求。有关原产地和位置的信息 可以使用下面的异常堆栈跟踪来识别异常。
连接字符串中有User Instance=True
,请将其删除。此外,您还应该将用户名和密码进行比较,因为多个用户可以具有相同的密码,因此您可以修改您的方法,例如:
private bool AdminIsValid(string username, string password)
{
using (var db = new AdminEntities())
{
return db.users.Any(u => u.password.Trim() == password &&
u.uname.Trim() == username);
}
}
我通过用我自己的连接字符串替换所有ApplicationServices
连接字符串来解决此问题。
然后我运行以下命令:
aspnet_regsql.exe -S DBServerName -U DBLogin -P DBPassword -A all -d DBName