从Win Store(Metro)应用程序访问Sharepoint在线Web服务 [英] Access Sharepoint Online Web Service from Win Store (Metro) app

查看:65
本文介绍了从Win Store(Metro)应用程序访问Sharepoint在线Web服务的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


我们正尝试从Windows应用商店应用访问Sharepoint Online网站中的lists.asmx网络服务。我们遇到了声明身份验证的技术障碍。我们想使用客户端对象模型,但Windows应用商店应用程序不使用通常的
DotNet库,而AFAIK没有商店应用程序的更新客户端对象模型。


< p style ="padding-right:0px; font-size:14px; vertical-align:baseline; clear:both; word-wrap:break-word; font-family:Arial,'Liberation Sans','DejaVu Sans', sans-serif">
我们已经看到Win Store应用程序访问sharepoint(不是在线sharepoint)和在线访问sharepoint的非商店应用程序的示例,但没有显示如何完成此特定专长。



我们尝试将整个SP Online网站设置为匿名访问,但我们仍然在尝试调用Web服务时遇到403错误。



可以存储应用程序还没有这样做吗?有人知道吗?





解决方案

是,您无法使用现有的客户端对象模型。就在昨天,我正在玩同样的想法并找到一个解决方案。此解决方案适用于SharePoint Online。

 private async void Authenticate()
{
var url =" https:// sharepointonlinesite" ;;
byte [] authBytes = Encoding.UTF8.GetBytes(("user@domain.onmicrosoft.com" +":" +" password")。ToCharArray());
var req = new HttpClient();
var UserAgent =" Mozilla / 5.0(Windows; U; Windows NT 5.1; en-US)AppleWebKit / 533.4(KHTML,与Gecko一样)Chrome / 5.0.375.99 Safari / 533.4" ;;
var授权="基本" + Convert.ToBase64String(authBytes);
req.DefaultRequestHeaders.Add(" User-agent",UserAgent);
req.DefaultRequestHeaders.Add(" Authorization",Authorization);
var response = await req.GetAsync(url);
}


如果有效,请告诉我。


We're trying to access the lists.asmx web service in our Sharepoint Online site from a Windows Store app. We're running into technical hurdles with Claims authentication. We'd like to use the client object model, but the Windows Store apps don't use the usual DotNet libraries, and AFAIK there's no updated client object model for Store apps.

We've seen examples for Win Store apps accessing  sharepoint (not sharepoint online) and non-store apps accessing sharepoint online, but nothing showing how to accomplish this particular feat.

We tried setting our entire SP Online site to anonymous access, but we still get a 403 error trying to call the web service.

Can store apps just not do this yet? Anyone know?


解决方案

Yes, you can't use existing Client Object Model. Just, yesterday I was playing around the same idea and found one solution. This solution works for SharePoint Online.

 private async void Authenticate()
        {
            var url = "https://sharepointonlinesite";
            byte[] authBytes = Encoding.UTF8.GetBytes(("user@domain.onmicrosoft.com" + ":" + "password").ToCharArray());
            var req = new HttpClient();
            var UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.99 Safari/533.4";
            var Authorization = "Basic " + Convert.ToBase64String(authBytes);
            req.DefaultRequestHeaders.Add("User-agent", UserAgent);
            req.DefaultRequestHeaders.Add("Authorization", Authorization);
            var response = await req.GetAsync(url);
        }

Let me know, if it works for you.


这篇关于从Win Store(Metro)应用程序访问Sharepoint在线Web服务的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆