Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将SQL Server身份验证与ASP.NET表单身份验证结合使用_Asp.net_Sql Server - Fatal编程技术网

将SQL Server身份验证与ASP.NET表单身份验证结合使用

将SQL Server身份验证与ASP.NET表单身份验证结合使用,asp.net,sql-server,Asp.net,Sql Server,如何从asp.net验证SQL Server 2005/8 db登录,如果有效,请用户登录到应用程序 如果可能的话,我也想在连接字符串中使用这个用户名和密码。我可以想出一种方法,在UID和PWD上使用string.replace实现这一点,但这并不理想 我对windows身份验证不感兴趣,因为它在这里无效。纯sql server登录。我已经有了使用WindowsAPI实现这一点的方法 也对成员资格提供程序不感兴趣。您只需在登录页面上请求用户名和密码,然后将它们嵌入到SQL连接字符串中即可。我建议

如何从asp.net验证SQL Server 2005/8 db登录,如果有效,请用户登录到应用程序

如果可能的话,我也想在连接字符串中使用这个用户名和密码。我可以想出一种方法,在UID和PWD上使用string.replace实现这一点,但这并不理想

我对windows身份验证不感兴趣,因为它在这里无效。纯sql server登录。我已经有了使用WindowsAPI实现这一点的方法


也对成员资格提供程序不感兴趣。

您只需在登录页面上请求用户名和密码,然后将它们嵌入到SQL连接字符串中即可。我建议使用提供的用户和密码创建一个SqlConnection对象,并检查连接是否成功。之后,立即关闭连接,并对应用程序的所有功能使用“标准连接”。这样,您的应用程序将受益于连接池

用户的连接字符串不应允许连接池,这样它才是真正关闭的,并且不会被发送回应用程序池以供可能的重用

只需在连接字符串中添加
Pooling=false
。这避免了它的池化

见此:


池在web场景中特别重要,在web场景中,连接是连续打开和关闭的。默认情况下,它由ADO.NET使用。

因此,如果我理解正确,身份验证完全基于用户名/密码是否有效以访问SQL数据库?是的,Jeeves已经有一个内置的用户身份验证系统,因此最好使用它,而不是摆弄一些不同的东西。但想法是:这将为每个用户创建一组不同的连接,击败ADO.NET连接池。但这是他的要求。如果您需要不同的用户,池的行为会有所不同,当然,请看我的答案。我建议通过打开并立即关闭带有用户凭据的SqlConnection进行检查,并禁用ppoling。如果成功,用户将登录,但在所有后续数据库操作中开始使用常规连接。这样所有用户都有相同的连接并共享池。感谢您的详细解释。不需要连接池,因为同时最多会有10个用户,而且这些windows CE设备不会出现连接池问题。然而,我喜欢的是在登录时简单地测试连接,并基于此创建cookie等。事实上,我想解释的是,如果您打开连接以检查用户凭据,除非您禁用池,否则连接将保持打开状态。在这种情况下,这不是很重要,因为只有10个用户,但这不是在原来的帖子上。无论如何,我认为在连接字符串中添加pooling=fals是值得的。你说得对,我应该使用pooling。还有其他用户通过瘦客户机和富客户机从ERP系统访问数据库,最好避免保持连接打开。