2017-07-26 68 views
1

我正在致力于在ASP.Net Web API中使用Microsoft公共数据服务SDK方法。当我创建与常用数据服务的连接时,它会提示用azure ID登录,但登录后它不会返回对Web API的响应以进一步继续。在asp.net web api中使用Microsoft公共数据服务SDK

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

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

感谢

+0

HI Rahul,你有没有找到这个解决方案?文档缺乏 – Bassie

回答

3

我知道我有点晚了,但我想我会回答别人运行到同样的问题。

如果按照写在微软文档当前的说明,你就会有一个包含所有让您与您的CDS环境交互所需的必要值的App.config文件结束。问题是,如果包含通常会提示您输入的用户凭据并将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访问您的凭据,因此很容易让你的源代码之外的凭据。

相关问题