-1

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

这是我的功能:

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

4

2 回答 2

0

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

然后我运行以下命令:

aspnet_regsql.exe -S DBServerName -U DBLogin -P DBPassword -A all -d DBName
于 2013-10-23T17:12:40.383 回答
0

我遇到过这种情况,这取决于它在哪个页面上。这是因为除非初始化简单的成员资格,否则身份验证/授权机制将失败并给出奇怪的(不真实的!)消息。

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

于 2013-10-23T16:37:56.763 回答