0

我一直在尝试使用模拟检查用户在 SQL Server Analysis Services (SSAS) 服务器上的访问权限。

AdomdConnection 类具有以下实例方法来完成相同的操作:

public void ChangeEffectiveUser(string effectiveUserName)

是相同的 MSDN 文档。

我按照这里的 NuGet 包说明在我的 C# 项目中添加了 ADOMD.Net,但是当我尝试使用 API 时,我根本看不到智能感知中的 API。

try
{
    Console.WriteLine("Going to open ADOMD connection.");
    myconnect.Open();
    //below line doesn't compile
    myconnect.ChangeEffectiveUser(@"mydomainname\otherUserIamTryingToImpersonate");
    adomdCommand.ExecuteNonQuery();
    Console.WriteLine("Query executed successfully");
    Console.ReadLine();
}
catch (Exception ex)
{

    MessageBox.Show("error in connection");
}

它给出了编译失败:

错误 CS1061“AdomdConnection”不包含“ChangeEffectiveUser”的定义,并且找不到接受“AdomdConnection”类型的第一个参数的扩展方法“ChangeEffectiveUser”(您是否缺少 using 指令或程序集引用?)

我错过了什么吗?

4

1 回答 1

1

我发现 MS 已将 NuGet 包更改为最新的 ADOMD.Net 版本,该版本是 SQL Server 2016 的一部分。它可以在 NuGet 包Unofficial.Microsoft.AnalysisServices.AdomdClient. 不知道为什么 MS 采取这种策略来引入一个新包,而不是当他们应该简单地在已经存在的 NuGet 包中以Microsoft.AnalysisServices.AdomdClient.

Microsoft.AnalysisServices.AdomdClient.dll当我参考 NuGet 包中存在的 v13.x 时,Unofficial.Microsoft.AnalysisServices.AdomdClient我的编译错误消失了,我可以看到 API。

于 2017-07-08T02:51:14.663 回答