0

我有一个简单的登录功能:

    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 的用户实例。连接将被关闭。

在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。

4

2 回答 2

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);
    }
}
于 2013-10-22T19:58:29.230 回答
0

我通过用我自己的替换所有ApplicationServices连接字符串来解决这个问题。

然后我运行以下命令:

aspnet_regsql.exe -S DBServerName -U DBLogin -P DBPassword -A all -d DBName
于 2014-04-08T13:46:27.933 回答