用户 'CZIDC\IWAM_WEB2616511' 登录失败
    文章作者:恒爱网络 阅读次数:6043 发布时间:2012-6-16
    用户 'ZIDC\IWAM_WEB2616a1' 登录失败。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

    异常详细信息: System.Data.SqlClient.SqlException: 用户 'ZIDC\IWAM_WEB2616a1' 登录失败。

    源错误: 


    行 12:         string str = ConfigurationSettings.AppSettings["ConSql"];
    行 13:         SqlConnection conn = new SqlConnection(str);
    行 14:         conn.Open();
    行 15:         string sql = "select username from users";
    行 16:         SqlCommand com = new SqlCommand(sql, conn);
     
    web.CONFIG 里连接SQL2005数据库的语句:



    去掉  Integrated Security=SSPI; 即可。原理如下


    连接字符串必须包含SQL Server实例名称:
              Data Source=ServerName;
              使用本地的SQL Server(localhost),如果想要使用远程服务器运行,应该在示例对象中把正确的服务器赋给Data Source 属性。此外,还必须指定所支持的两种身份验证方法(即Windows身份验证和SQL Server身份验证)中的其中一种。Windows身份验证使用Windows登录用户身份连接数据库,而SQL身份验证要求显式地指定SQL Server用户ID和密码。要想使用Windows身份验证,必须在连接字符串中包括 Integrated Security 属性:
              Data Source=ServerName;Integrated Security=True;

              默认情况下,Integrated Security 属性为 False ,这意味着将禁用Windows身份验证。如果没有显式地把这个属性的值设置为True,连接将使用SQL Server身份验证,因此,必须提供SQL Server用户ID和密码。Integrated Security属性还能识别的其他值只有SSPI(Security Support Provider Interface,安全性支持提供者接口).在所有的Windows NT操作系统上,其中包括Windows NT 4.0、2000、XP,都支持值SSPI。它是使用Windows身份验证时可以使用的惟一接口,相当于把Integrated Security 属性值设置为True。


              在Windows身份验证模式中,SQL Server使用Windows的安全子系统对用户连接进行有效性验证。即使显示地指定用户ID和密码,SQL Server也不检查连接字符串中的用户ID和密码。因为只有Windows NT、2000、XP支持SSPI,因此如果正使用的是这些操作系统,则只能使用Windows集成的安全策略去连接SQL Server。不论使用哪一个操作系统,当使用SQL Server身份验证时,必须在连接字符串中指定用户ID和密码:
    Data Source=ServerName;User ID=donaldx;Password=unbreakable

              默认情况下,SQL Server .NET Data Provider连接指定用户的默认数据库,当在数据库中创建用户时,可以设置用户的默认数据库。此外,也可以在任意时间更改用户的默认数据库。例如,系统管理员的默认数据库是master。如果想要连接不同的数据库,应该指定数据库的名称:
    Data Source=ServerName;Integrated Security=SSPI;Initial Catalog=Northwind