用户''登录失败。 - ASP.NET MVC FormsAuthentication

时间:2011-01-16 23:32:15

标签: c# asp.net-mvc

我的“注册”页面用于工作,直到我开始使用FormsAuthentication和FormsAuthenticationTicket登录。

现在在注册时,它在检查数据库中是否已存在电子邮件时失败

if (Global.DC.Users.Where(x=>x.Email == Email).Count() > 0)
  return "The email address already exists in the database";

出现此错误消息

  

System.Data.SqlClient.SqlException:   用户''登录失败。

有谁知道如何解决这个问题?提前谢谢。

1 个答案:

答案 0 :(得分:3)

看起来SQL登录无效。我会检查您的连接字符串以查看是否已更改,如果没有,我将验证SQL登录和数据库用户是否已正确配置。

通常,如果您正在更改DataContext的调用方式,如果您曾经使用特定的连接字符串显式测试它,或者使用默认构造函数(new ....DataContext())创建它,则可能没有意识到这种情况。使用默认构造函数通常使用Settings.settings项目项中配置的设计时连接字符串,该项目存储要在web.config配置文件中引用的连接字符串名称。你还在用同样的方式打电话吗?

另一方面,我注意到您通过DataContext课程致电Global。这通常被认为是一种糟糕的设计,您应该考虑使用工作单元方法进行数据访问,例如,在完成后实例化并释放您的上下文:

using (var context = new DataContext()) {
    // Do work here.
}

另一个快速的问题是,使用Any代替Count比使用Count更高效会导致整个枚举被枚举以获取结果,其中{{1}将在第一个有效的实例中失效。