当我的数据库中不存在用户时,我在登录功能上收到错误。
这是我的功能:
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的用户实例 启动用户实例的进程。连接将是 闭合。
答案 0 :(得分:0)
我发生了这件事,它取决于它所在的页面。这是因为除非初始化简单成员资格,否则认证/授权机制将失败并给出奇怪的(不真实的!)消息。
在我的情况下,将属性[InitializeSimpleMembership]添加到Controller类将确保连接已正确设置并消除错误。
答案 1 :(得分:0)
我通过用我自己的替换所有ApplicationServices
连接字符串来修复此问题。
然后我运行了以下命令:
aspnet_regsql.exe -S DBServerName -U DBLogin -P DBPassword -A all -d DBName