在asp.net web api中使用Microsoft公共数据服务SDK

时间:2017-07-26 05:17:42

标签: powerapps

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

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

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

由于

1 个答案:

答案 0 :(得分: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存储和访问您的凭据,从而可以轻松地将凭据保留在源代码之外。