我有一个简单的登录功能:
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"
}
}
它仅在登录成功时有效,当失败时我收到此错误:
由于失败而无法生成SQL Server的用户实例 启动用户实例的进程。连接将是 闭合。
执行期间生成了未处理的异常 当前的网络请求。有关的来源和位置的信息 可以使用下面的异常堆栈跟踪来识别异常。
答案 0 :(得分:2)
您的连接字符串中有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);
}
}
答案 1 :(得分:0)
我通过用我自己的替换所有ApplicationServices
连接字符串来修复此问题。
然后我运行了以下命令:
aspnet_regsql.exe -S DBServerName -U DBLogin -P DBPassword -A all -d DBName