我正在使用ASP.Net Web API中的Microsoft Common Data Services SDK方法。当我创建与公共数据服务的连接时,它会提示使用azure id登录,但在登录后它不会返回对Web API的响应以继续进行。
当我在控制台应用程序中使用SDK方法时,这工作正常,我可以从控制台应用程序在CDS数据库上执行CRUD操作。
请建议如何在ASP.Net web API中使用SDK方法?我想避免登录提示,因为我的应用程序是一个Web API服务,它将在后台运行,不会有用户交互。有没有办法在配置文件或代码中定义登录凭据以避免登录提示?
由于
答案 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
存储和访问您的凭据,从而可以轻松地将凭据保留在源代码之外。