1

我正在努力在 ASP.Net Web API 中使用 Microsoft Common Data Services SDK 方法。当我创建与公共数据服务的连接时,它会提示使用 azure id 登录,但登录后它不会返回对 Web API 的响应以继续进行。

当我在控制台应用程序中使用 SDK 方法时,这工作正常,我可以从控制台应用程序对 CDS 数据库执行 CRUD 操作。

请建议如何在 ASP.Net Web API 中使用 SDK 方法?我想避免登录提示,因为我的应用程序是一个 Web API 服务,它将在后台运行并且不会有用户交互。有没有办法在配置文件或代码中定义登录凭据以避免登录提示?

谢谢

4

1 回答 1

3

我知道我有点晚了,但我想我会为遇到同样问题的其他人回答。

如果您遵循 Microsoft Docs 中编写的当前说明,您最终会得到一个 App.config 文件,其中包含允许您与 CDS 环境交互所需的所有必要值。问题是,如果您包含通常会提示您输入的用户凭据并将UserSource值更改为LoggedIn,仍然会提示您登录。将值存储在 App.config 文件中也不能使其成为 ASP 的理想选择.NET 项目。

因此,您可以做的是ConnectionSettings自己创建类的实例并提供所有必要的凭据。

var settings = new ConnectionSettings
{
    Credentials = new UserCredentialsSettings
    {
        UserName = _userName,
        Password = _password,
        ApplicationId = _applicationId
    },
    EnvironmendId = _environmentId,
    Tenant = _tenant
};

using (var client = settings.CreateClient().Result)
{
    // Write calls to the CDS here
}

使用这种方法将防止您收到登录提示。它还允许您使用 存储和访问您的凭据ConfigurationManager.AppSettings,从而可以轻松地将您的凭据保存在源代码之外。

于 2018-03-08T20:53:28.783 回答