网站登录的SQL Server身份验证

时间:2017-03-13 19:53:46

标签: asp.net sql-server authentication iis

客户要求我们为他们开发网站,但他们希望我们使用SQL服务器帐户进行身份验证,而不是标准的ASP.NET身份验证或使用Active Directory帐户。 (即,使用SQL Server身份验证的帐户。)

此网站将暴露给公共互联网,并且会有未被客户雇用的用户,并且客户的Active Directory在其DMZ中不可用。

所以我对此有几个问题:

1)这是个好主意吗? (我们的直觉是,它不是。)

2)我们应该如何做到这一点?

在我的头脑中,我能想出的最佳答案是根据用户在网络表单中输入的凭据动态构建连接字符串。如果连接成功,请继续访问该站点。否则,将它们踢回登录页面。 (当然,如果登录失败次数过多,请确保帐户被注销。)

有更好的方法吗?

感谢。

1 个答案:

答案 0 :(得分:1)

  

1)这是个好主意吗? (我们的直觉是它不是。)

使用它有一些问题。值得注意的是,您必须以升级用户身份运行应用程序以执行用户维护 - 添加/停用用户,更改密码等等...运行具有数据库升级权限的Web应用程序通常不受欢迎。如果你在应用程序之外运行这种东西,那么你需要让你的DBA运行所有用户维护的东西,这并不好玩。此外,如果您对密码复杂性,密码轮换等有要求,则可能会发现SQL Server身份验证缺少AD中可用的身份验证。

  

2)我们应该如何做到这一点?

您可以使用提供的凭据轻松测试尝试登录SQL Server时提供的凭据。您可以从配置设置中读取连接字符串,然后将其加载到SqlConnectionStringBuilder对象(在System.Data.SqlClient某处),操纵它以使用提供的凭据,然后使用该操作的结果进行连接测试凭证是否有效。

您只想将其用于测试您的登录信息。之后,您可以返回使用正常的连接字符串。

相关问题