这是我的问题: b>
答)我需要通过在PHP代码中传递用户名和密码(如我们在连接到SQL Server时使用SQL Server身份验证时)来连接到SQL Server 2008(使用Windows身份验证)?
B)我需要根据Windows身份验证的用户名/密码对用户进行身份验证。
(当我使用SQL Server身份验证连接时遇到问题时,我的解决方案) b>
A)在数据源(ODBC)中创建一个“系统DSN”,使用用户输入的登录ID和密码将其配置为验证登录ID的真实性 - >使用SQL Server身份验证将其称为“DBConnect”。
使用这个PHP代码
$ con = odbc_connect(“DBconnect”,“sql_user”,“sql_password”);我可以成功连接
这样我就可以连接到SQL SERVER以及在php代码中执行其他SQL查询。
B)使用“$ con”中的值打印0或1,从而验证用户身份。
现在,当SQL Server使用Windows身份验证时,我需要做同样的事情。这就是我正在做的事情。 b>
A)在数据源(ODBC)中创建一个“系统DSN”,将其配置为使用网络登录ID验证登录ID - >的Windows NT身份验证的真实性,并将其称为“DBConnect_NT”。
由于此代码
为$ con = odbc_connect(“DBconnect_NT”,“windows_user”,“windows_pass”);
不工作给出错误“查询准备/执行中的错误.28000”。
我在IIS7管理器中更改了一些设置。在IIS7管理器 - >身份验证:
“Windows身份验证=已启用” b>和“匿名身份验证=已禁用” b>。
现在每次调用$ con = odbc_connect(“DBconnect_NT”,“”,“”);它给了一个流行
登录 。当我输入用户名和密码时,它连接并因此允许我使用相同的连接参数$ con进行其他查询。
B)我无法基于这种方法验证用户身份。因为当我输入错误的用户名和密码弹出时,它没有回应(弹出窗口再次出现),并给出了错误“401 - 未经授权:由于证书无效,访问被拒绝。”当我取消弹出。
所以这是我的困境 h2>
我使用正确的方式连接到SQL Server(使用Windows身份验证)吗?
通过动态传递(Windows身份验证)用户名和密码,还有其他可行的方式来连接SQL Server吗?
我得到很多建议,比如使用LDAP来对Active目录进行身份验证,但是它不起作用。
请帮助我,因为几天后我被困住了。
PS:我在Amazon EC2机器中使用SQL SERVER 2008,IIS7和PHP5.3。 b>
谢谢Tony的如此快速的回应。
但事实是,SQL存储过程和查询的其余部分都是基于与之相关的“用户”
我们连接到SQL Server。存储过程给出了不同的基于结果的用户连接。
而且我仅限于使用“Windows身份验证”连接到SQL Server。这就是为什么我需要使用Windows身份验证和传递用户/密码连接到SQL Server。
当我在浏览器中调用php文件(使用代码$ con = odbc_connect(“DBconnect_NT”,“”,“”)连接到SQL Server)时,IIS7中更改的设置使我能够弹出Windows身份验证。在提供用户/密码时,它使用此用户/密码连接SQL Server,其余存储过程也按预期工作。
这个PHP文件是由我使用“http://url/Webservice/connect.php”构建的flex应用程序使用的.Flex动态地将用户/密码传递给这个从窗体弹出并因此连接。但是,当提供错误的用户/密码时,“Popup很难处理”,它会持续不断地弹出应用程序挂起。
如果在提供错误的用户/密码弹出时可能收到一些错误代码
它可以解决这个问题。
或者,如果我们有其他方法使用Windows身份验证连接SQL Server,并且传递用户/密码将解决我的目的。
提前致谢 。