从c#应用程序调用slash db rest api

从c#应用程序调用slash db rest api,c#,slashdb,C#,Slashdb,我们已经在slashdb(slashdb.com)后面公开了sql server数据库。在他们的网站中,我们能够创建查询并从他们生成的URL获取数据。但不是像C#应用程序那样来自外部 现在,我们希望在c#应用程序中使用这些URL,并在我们的网页中显示数据。我知道如何在c#中进行基于rest的调用。但是我一直在用我的c#的slashdb rest api调用发送身份验证信息。它抛出403HTTP错误 请告诉我如何从c#应用程序调用slash db rest调用 谢谢。HTTP 403确实表示缺少或

我们已经在slashdb(slashdb.com)后面公开了sql server数据库。在他们的网站中,我们能够创建查询并从他们生成的URL获取数据。但不是像C#应用程序那样来自外部

现在,我们希望在c#应用程序中使用这些URL,并在我们的网页中显示数据。我知道如何在c#中进行基于rest的调用。但是我一直在用我的c#的slashdb rest api调用发送身份验证信息。它抛出403HTTP错误

请告诉我如何从c#应用程序调用slash db rest调用


谢谢。

HTTP 403确实表示缺少或不正确的凭据,或者用户未被授权访问或查询资源

首先,确保将用于向SlashDB发送请求的用户名已被分配查询的执行权限。为此,请转到配置->查询,然后打开查询定义。在“执行”字段中,键入用户名。您可以通过用逗号分隔用户名来分配多个用户名。作为旁注,用户public不需要凭据,因此如果您的资源可以公开使用,只需将public添加到Execute字段

对于非公共用户,您需要在HTTP请求中提供这些凭据

SlashDB允许两种方式发送您的凭据:

  • 使用基本身份验证的用户名/密码
  • API密钥
  • Ad.1使用授权标头和用户名:密码的二进制值构造HTTP请求。请参阅此Stackoverflow配方,了解如何执行此操作:

    Ad.2要使用API键,首先为SlashDB用户分配一个键(字母数字字符串),然后将其与您的请求一起提供

    要执行此操作,请转到配置->用户,然后打开用户的配置对话框。向下滚动到底部的API身份验证部分,并将密钥粘贴到提供的字段中。有关灵感,请参见上的CodeIngniter或WEP256键。不要使用包含“:”的字符串,因为它用于将密钥拆分为应用密钥和api密钥。现在只需要一把钥匙

    将密钥与请求一起作为标头或URL查询字符串发送。默认情况下,该参数称为“apikey”:

    选项1:在标题中

    (HttpWebRequest)WebRequest.Create(@"https://slashdb.yourdomain.com/db/Northwind/Customers/CustomerID/ALFKI.json");
    req.Headers.Add("apikey", "12345678");
    
    选项2:在URL中

    (HttpWebRequest)WebRequest.Create(@"https://slashdb.yourdomain.com/db/Northwind/Customers/CustomerID/ALFKI.json?apikey=12345678");