.net SQL身份验证问题

时间:2014-11-13 16:12:59

标签: c# sql-server

我的设置

我有一个winform应用程序,它连接到local sql express db并执行不同的操作(updates,inserts,deletes) sql express是本地的,我使用以下连接字符串(来自app.config)

<connectionStrings>
    <add name="SQLConnectionString" connectionString="Data Source=.\sqlexpress;Initial Catalog=database1;Integrated Security=SSPI" />
    <!--<add name="SQLConnectionString" connectionString="" />-->
</connectionStrings>

我的应用程序首先在用户登录时对用户进行身份验证(通过数据库1 ......因此可以连接到数据库) 我也能够毫无问题地连接到SQL管理控制台。我看到并能够通过管理控制台从DB中更改表 当我尝试对不同的表执行操作时,我正在获取“登录来自不受信任的域并且无法与Windows身份验证一起使用” 我也尝试使用服务器名称而不是“。”在连接字符串中无济于事。 在我的应用程序中,我引用了app.config文件来获取connectionStrings

1 个答案:

答案 0 :(得分:0)

最有可能的问题是,ASP.NET仍然设置为不传递安全上下文的默认值。您应该通过在命令提示符下运行以下命令来启用ASP.NET Impersonation Authentication

appcmd set config /commit:WEBROOT /section:identity /impersonate:true

就连接字符串而言,应该没问题。 Integrated Security选项的SSPITrue之间的差异是:

  • SSPI (安全支持提供程序接口)表示如果用户ID 密码不存在则使用Windows安全性,如果他们使用SQL Server安全性在场。
  • True 表示使用Windows集成安全性登录SQL Server,即使连接字符串包含用户ID 密码设置。< / LI>

由于您未在连接字符串中指定用户ID 密码,因此 SSPI True 值应该是有效的。

检查以上内容是否无效的其他区域:

  • IIS服务的身份验证帐户
  • 本地安全策略(基于“登录来自不受信任的域”部分)。