2

我的问题如下。我有一个网站,我正在创建并希望在其上使用表单身份验证。除了现在我添加了将用户保存到数据库的可能性之外,一切都很好。我已将数据库添加到 Visual Studio 上的 AppData 文件夹(已创建)。但是每次用户尝试(在我的网站上)创建一个新帐户时,我都会收到一个看起来像这样的错误(在调试中):

用户 'DOMAIN\username' 登录失败

我的连接字符串如下:

<connectionStrings>
    <add name="SecurityConnectionString" 
         connectionString="Data Source=(computername)\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Security.mdf;Integrated Security=True;User Instance=true" 
         providerName="System.Data.SqlClient" />
</connectionStrings>

奇怪的是,我可以使用 Windows 登录连接到 SQL Management Studio 没有问题。我已经尝试创建一个新用户(在 SQL 中)并使用这些凭据,但仍然没有运气(即使我已经给了用户 db_owner 权限,也会出现关于用户无法创建新数据库的错误)。任何见解将不胜感激。提前致谢。

具体来说,这是我得到的错误

[SqlException (0x80131904): Login failed for user 'DOMAIN\username'.]

更新:

我发现了一些东西。每当我在 SQL Server Management Studio 上将“Windows 身份验证”更改为“SQL Server 身份验证”时,即使使用正确的密码和用户名,我也无法登录。这可能(很可能)是我认为问题的根源。

4

2 回答 2

1

我找到了解决方案。只需要创建一个新用户(在 SQL Server 身份验证下),然后使用我的 Windows 身份验证凭据通过 SQL 向该用户添加管理员权限,这意味着,我创建了一个用户,然后授予该用户管理员权限。这看起来很简单,我遇到的问题如下:

据我了解,如果您有权访问 SQL 数据库(无论您使用何种身份验证模式)并且对该数据库拥有管理员权限,那么您可以为所欲为。但是,似乎情况并非如此,因为在使用 SQL Server 身份验证时我的“域\用户名”凭据没有经过身份验证,这意味着我没有管理员权限。

无论如何,在创建新用户并修改连接字符串之后,我设法能够向数据库写入/读取/任何内容。

我感谢大家在这个问题上的帮助。谢谢你。

于 2012-10-18T18:57:13.837 回答
0

在连接字符串(computername)中应该是localhost或您的计算机名称是什么。除非您目前正在(computername)用作此帖子的占位符。

于 2012-10-17T21:00:31.903 回答