从ASP.NET Core连接到SQL Server的最佳实践?
我最近遇到了一些SQL Server并不喜欢默认的AppIdentityUser登录的问题,所以我继续创建了一个具有写访问权限的自定义数据库用户.
但它让我想知道 – 这是最好的方法吗? 我想知道Asp.Net Core最好的SQL Server登录方法是什么.我知道有一个类似于普通.NET的问题,但是你无法加密Core web.config / appsettings.json(嗯,以一种快速而直接的方式). 以下是我看到的选项: 通过存储在appsettings.json中的SQL Server ID进行连接. > Pro:已经配置好了. 通过ASP.NET“AppIdentityUser”通过用户NT ID连接. > Pro:appsettings.json中没有密码. 通过Active Directory用户连接. >专业:轻松可以撤销. 我还缺少其他选择吗?在哪些情况下使用以下哪些选项?哪个更标准?有没有我不考虑的利弊? 解决方法
您应该绝对使用自定义SQL登录来连接到数据库.在底层,SQL登录可以绑定到本地帐户,服务帐户,网络帐户等.实际上并不重要.
您似乎在这里遇到的真正问题是不希望(正确地)以纯文本形式公开登录凭据.我不知道为什么你在这里继续引用Web.config,因为ASP.NET Core没有使用它.相反,可以选择使用各种配置提供程序.默认情况下,ASP.NET Core(至少从2.0开始)添加了一个JSON配置提供程序,用于在项目中查找appsettings.json和appsettings.{environment} .json,命令行配置提供程序,用户机密配置提供程序,以及最后是环境变量配置提供程序. 最后两个对你的情况最有意思.在开发中,您应该使用用户机密.在生产中,您应该使用环境变量.但是,两者都不以加密的方式存储秘密.这两种方法的好处是秘密不在您的项目中,因此也不在您的源代码管理中.尽管两者都没有加密,但它并不像你想象的那么大.在任何一个中获取秘密都需要直接访问服务器/开发机器.此外,用户机密默认绑定到特定用户帐户,只能由该用户访问,并且环境变量可以以相同的方式设置.因此,有人需要获得对计算机的访问权并获得对特定帐户的访问权限.这实际上是一个相当高的标准,如果它发生,那么暴露数据库密码实际上是你最不关心的问题. 但是,如果您需要真正的加密,则可以选择使用Azure KeyVault.无论您的应用程序是否实际托管在Azure中,都可以使用KeyVault,虽然它不是免费的,但它非常便宜. 最后,您始终可以创建自己的配置提供程序或源第三方配置提供程序.例如,虽然默认的JSON提供程序不支持加密,但您可能会写一个. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 如何在ASP.NET Razor MVC4视图中使用LINQ?
- asp.net – ProviderManifestToken’2008’与之前遇到的’2
- asp.net-mvc – @ Html.HiddenFor返回null值
- Windows Server AppFabric分布式缓存研究
- asp.net-mvc – 未提供所需的防伪标记或无效 – 仅限Safari
- 在viewstate(或其他想法)中的asp.net商店对象类
- asp.net-mvc – 将模型信息传递给RenderPartial
- asp.net – 在新的MVC4应用程序中获取UserId(int)
- asp.net-mvc – 如何在ASP.Net MVC 3中可选地呈现一个部分?
- asp.net-mvc-3 – MVC3 – 如何将新创建的子对象链接到其父