ASP.NET身份验证问题

时间:2013-10-23 16:29:33

标签: c# asp.net sql-server authentication

当我的数据库中不存在用户时,我在登录功能上收到错误。

这是我的功能:

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);
    }
}

当用户不存在时,它按预期工作我收到以下错误。

  

发生与网络相关或特定于实例的错误   建立与SQL Server的连接。找不到服务器或   无法访问。验证实例名称是否正确   SQL Server配置为允许远程连接。 (提供者:SQL   网络接口,错误:26 - 查找服务器/实例时出错   指定)。

我怀疑ApplicationServices连接字符串是导致此问题的原因,您知道模板附带的连接字符串。

<add name="ApplicationServices" 
           connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true"
           providerName="System.Data.SqlClient" />

我还没有办法摆脱它,当我删除它时,我得到了不同的错误。 当用户登录有效时,不会抛出任何错误。

当密码错误时,我得到:

  

由于失败而无法生成SQL Server的用户实例   启动用户实例的进程。连接将是   闭合。

2 个答案:

答案 0 :(得分:0)

我发生了这件事,它取决于它所在的页面。这是因为除非初始化简单成员资格,否则认证/授权机制将失败并给出奇怪的(不真实的!)消息。

在我的情况下,将属性[InitializeSimpleMembership]添加到Controller类将确保连接已正确设置并消除错误。

答案 1 :(得分:0)

我通过用我自己的替换所有ApplicationServices连接字符串来修复此问题。

然后我运行了以下命令:

aspnet_regsql.exe -S DBServerName -U DBLogin -P DBPassword -A all -d DBName