好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

c# – 如何将基于SQL Server身份验证的应用程序切换到基于Windows的身份验证应用程序

我开发了一个使用SQL Server身份验证连接到数据库的应用程序.安装设置会询问管理员凭据(对于SQL Server身份验证)并创建新用户(特定于应用程序).安装程序需要管理员凭据才能创建特定用户.安装程序还会创建数据库并将此数据库映射到新创建的用户.现在需求更改以支持MIXED模式身份验证( Windows和SQL服务器).这意味着,虽然安装设置可以选择Windows模式或SQL模式.用户可以选择Windows或SQL.如果选择了SQL,则必须提供用户名和密码.我的问题是:

1-如果用户选择WINDOWS模式,是否需要创建特定于应用程序的用户?如果是,请指导如何创建新用户.

2-在整个应用程序中,我使用了带有“用户名”的连接字符串(安装时安装时创建的应用程序专用用户)和“密码”.我是否需要创建另一个连接字符串才能达到目的?

[1]不,你不必.你可以,它会工作,但这不是必需的.在Windows身份验证中,该过程将为当前运行代码的用户的SQL Server提供凭据.在大多数情况下,这将是启动流程的用户.您可以更改每个线程的用户,如果需要,请参阅 Thread.CurrentPrincipal.但我建议不要这样做,因为这显着地符合要求.

在大多数情况下,您将应用程序部署为服务,Windows服务或IIS应用程序.然后它在特定的Windows系统帐户下运行,您必须在SQL服务器上使用该帐户.

如果您不使用Windows系统帐户,您将面临密码过期,安全存储密码,无需使用用户名以运行其他可执行文件的问题.

将用户添加到Windows,只搜索:如何将用户帐户添加到Windows [版本],但考虑首先使用系统帐户(例如本地服务,网络服务)是微不足道的.

[2]我建议重构您的应用程序,以便您通过名称引用连接字符串.

您可能希望将配置管理与可执行文件分开.即一个应用程序准备配置,另一个使用它.例如,安装程序写入配置字符串,应用程序使用配置字符串,只要它允许访问数据库,应用程序就不关心内部的内容.

查看更多关于c# – 如何将基于SQL Server身份验证的应用程序切换到基于Windows的身份验证应用程序的详细内容...

  阅读:50次