如何使用REST API替换基于Sharepoint Forefront的身份验证调用XAmarin - IOS

Ste*_*Pet 2 sharepoint xamarin sharepoint-2013

我开始在Xamarin-IOS中创建一个应用程序,我需要在Sharepoint站点中进行身份验证.我正在使用(https://xyz-public.sharepoint.com/_layouts/15/authenticate.aspx?Source=/)

在此输入图像描述

用于身份验证目的的链接.在此期间它要求MS Forefront威胁管理网关进行身份验证所以我的疑问是,有没有办法在应用程序中对我的共享点站点进行身份验证而不使用(Forefront威胁管理门方式) Sharepoint REST API服务.

根据要求,我无法使用Web浏览器进行身份验证过程.

我在共享点认证方面没有太多专业知识.所以请帮助我.我并不期待完整的端到端答案,而是请指导我从我的目的开始实施.

注意:该应用程序在企业环境中运行.

Ste*_*han 5

你有几个选择.如果您使用UserAgent指定某个客户端,则Forefront(默认情况下)配置为支持基本回退.通过测试我发现你应该在其中创建一个带有"MSRPC"的UserAgent并删除普通浏览器在UserAgent中设置的所有值(Mozilla/IE/WebKit)

这样您的Forefront将回退到Http基本身份验证,可以在HTTPclient.defaultrequestheaders中设置.

using (var handler = new HttpClientHandler())
        {
            handler.Credentials = new System.Net.NetworkCredential("user", "password", "domain");
            //or handler.Credentials = new System.Net.NetworkCredential("user@domain", "password");
            using (var client = new HttpClient(handler))
            {
                //Clear the useragent field
                client.DefaultRequestHeaders.UserAgent.Clear();
                //add MSRPC
                client.DefaultRequestHeaders.UserAgent.Add(new System.Net.Http.Headers.ProductInfoHeaderValue("MSRPC"));

                var responseString = await client.GetStringAsync("https://urlProtectedByForeFront");
            }
        }
Run Code Online (Sandbox Code Playgroud)

  • 如果你能提供一个样本,那就太棒了.如果我按照上面的步骤,我是否可以通过我的客户端应用程序使用HttpWebRequest进行身份验证 (2认同)