You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用托管身份连接Kentico 13与Azure SQL数据库:解决认证关键字报错

解决Kentico 13连接Azure SQL时的"Keyword not supported: 'authentication'"错误

问题原因

Kentico 13默认依赖的System.Data.SqlClient(.NET Framework旧版SQL客户端)不支持Authentication连接字符串关键字,该关键字是后续Microsoft.Data.SqlClient才引入的功能,因此直接使用带Authentication的连接字符串会触发报错。

解决方案

方案1:自定义数据库连接工厂(推荐,支持所有Azure AD验证方式)

通过替换Kentico默认的连接工厂,改用支持Azure AD验证的Microsoft.Data.SqlClient来创建数据库连接,步骤如下:

  1. 向Kentico项目安装Microsoft.Data.SqlClient NuGet包(选择与项目.NET Framework版本兼容的版本,推荐4.0+)
  2. 创建自定义连接工厂类:
using CMS.DataEngine;
using Microsoft.Data.SqlClient;

public class AzureADSqlConnectionFactory : SqlConnectionFactory
{
    public override System.Data.SqlClient.SqlConnection CreateConnection(string connectionString)
    {
        // 使用Microsoft.Data.SqlClient创建连接,兼容基类返回类型
        var msSqlConnection = new Microsoft.Data.SqlClient.SqlConnection(connectionString);
        return (System.Data.SqlClient.SqlConnection)msSqlConnection;
    }
}
  1. 在项目初始化代码中注册自定义工厂(例如Global.asax的Application_Start方法):
protected void Application_Start()
{
    // 注册自定义连接工厂,需在Kentico初始化前执行
    ConnectionHelper.ConnectionStringFactory = new AzureADSqlConnectionFactory();
    CMS.DataEngine.ApplicationHelper.InitApp();
}
  1. 保持原连接字符串不变即可使用Active Directory Device Code Flow验证:
"Server=tcp:<MyServer>.database.windows.net,1433;Initial Catalog=<MyDB>;Authentication=Active Directory Device Code Flow;"

方案2:改用Azure AD集成身份验证(本地开发简化方案)

如果你的本地机器已加入Azure AD,且当前登录账号拥有目标SQL数据库的访问权限,可改用以下连接字符串,无需修改代码:

"Server=tcp:<MyServer>.database.windows.net,1433;Initial Catalog=<MyDB>;Integrated Security=True;Authentication=Active Directory Integrated;"

注意:此方式要求项目运行的.NET Framework版本不低于4.7.2,且本地账号已在Azure SQL中被授予数据库权限(需在SQL中创建对应AD用户并分配角色)。

权限配置前提

无论使用哪种方案,都需要确保你的Azure AD身份(设备码登录账号/集成身份/托管身份)在Azure SQL数据库中拥有权限:

  • 在Azure SQL服务器的Azure Active Directory设置中,指定AD管理员
  • 登录数据库后执行SQL命令创建AD用户并分配角色:
CREATE USER [你的AD账号/托管身份名称] FROM EXTERNAL PROVIDER;
ALTER ROLE db_owner ADD MEMBER [你的AD账号/托管身份名称];

内容的提问来源于stack exchange,提问作者Vidhyardhi Gorrepati

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 14:02:21