微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

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

解决方法

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

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

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

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐