Azure移动服务,HttpClient,授权
我可以使用.NET的HttpClient来访问Azure Mobile服务吗?
如何使用HttpClient对移动服务自带的自定义身份validation/授权模式进行身份validation ?
这总是返回401,因为我没有传递任何身份validation凭据:
var client = new HttpClient(); var response = client.GetAsync("https://localhost:49190/api/test").Result;
此外,为什么我使用移动服务客户端 ,为什么我的应用程序密钥,主密钥或用户身份validation密钥总是返回(401)未授权?
客户:
var mobileClient = new MobileServiceClient("https://localhost:49190/", "[my key]"); var response = mobileClient.InvokeApiAsync("test").Result;
服务方面:
[AuthorizeLevel(AuthorizationLevel.Application)] public class TestController : ApiController { public ApiServices Services { get; set; } // GET api/Test public string Get() { Services.Log.Info("Hello from custom controller!"); return "Hello"; } }
“我可以使用.NET的HttpClient来访问Azure Mobile服务吗?” 简短的回答是肯定的。 简单的方法是将其添加到客户端的标头:
var client = new HttpClient(); client.DefaultRequestHeaders.Add("X-ZUMO-APPLICATION", "[my key]");
但是要小心,如果你使用的是本地托管版本,你需要确保你…
-
强制服务认为它是托管的,以便启用身份validation。
(在App_Start / WebApiConfig.cs中:
config.SetIsHosted(true);
-
将应用程序密钥和主密钥添加到web.config:
如果没有#1,将完全忽略整个服务的身份validation,因此您不知道在客户端中添加身份validation的方式是否正常。 如果没有#2,您可以将密钥添加到客户端(您从Azure获得),但它始终会返回401.这可能是发布的第二个问题的答案,该问题涉及使用MobileServiceClient
始终返回401。
最后,总共可以使用三种不同的标题。 您可以使用每个不同级别的授权。 从这个MSDN文档 :
作者说明:我个人很难让这个工作,并且对于这种特定的风格有限或缺少文档,我想写这个Q / A. 如果您认为我应该添加任何东西,请告诉我。
上述就是C#学习教程:Azure移动服务,HttpClient,授权分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/959992.html