用户的C#ASPX标识模拟/ConnectionString不工作

本文关键字:ConnectionString 工作 模拟 C#ASPX 标识 用户 | 更新日期: 2023-09-27 18:19:33

我有一个C#ASPX网站存储在一台服务器上,它从同一域中的SQL服务器调用大量结果。在我的SQL数据库中,有两个用户具有相同的权限:

  1. 管理员
  2. NTADMIN''Me

我的网站存储在本地服务器上的IIS目录中。在我的web.config文件中,我有如下的身份模拟和连接字符串:

<identity impersonate="true" userName="admin" password="admin" />
<add name="ConnectionString" connectionString="Data Source='server';Initial Catalog='database';Integrated Security=SSPI;" providerName="System.Data.SqlClient" />

为什么当我硬编码SQL数据库的"NTADMIN''me"凭据而不是管理员"凭据"时,这会起作用?"admin"用户是否也需要域凭据?如果我可以使用它们登录数据库,我认为这是没有必要的。

我收到的错误如下(uid+pwd工作良好地登录到数据库):

无法根据配置文件中指定的凭据创建Windows用户令牌。操作系统登录失败出错:未知用户名或密码错误。

用户的C#ASPX标识模拟/ConnectionString不工作

在这种情况下,您不能模拟SQL用户。这里有两种用户类型,一种是sql用户,另一种是windows用户。那里的身份模拟标记只适用于windows用户帐户。

Windows试图让该用户登录,但它对此一无所知,因此密码失败。

问题在于特权。试试这个。

在数据库服务器和web服务器上添加具有相同用户名和密码的本地windows用户帐户,然后将该用户作为windows登录名添加到sql server并分配适当的登录权限

使连接字符串Integrated Security=true。

将添加到web.config。启用匿名访问,并禁用IIS安全设置下的所有其他安全选项。

相关文章:
  • 没有找到相关文章