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

如何将基于Sharepoint Forefront的身份验证替换为针对XAmarin-IOS的REST API调用,sharepoint,xamarin,sharepoint-2013,Sharepoint,Xamarin,Sharepoint 2013,我开始在Xamarin IOS中创建一个应用程序,在那里我需要在Sharepoint站点中进行身份验证。我正在使用() 一种用于身份验证的链接。在请求MS Forefront threat management gateway进行身份验证期间,我的疑问是,是否有任何方法可以在应用程序内身份验证到我的共享点站点,而无需使用SharepointREST API服务(Forefront threat management gateway) 根据要求,我无法使用web浏览器进行身份验证 我在共享点身份

我开始在Xamarin IOS中创建一个应用程序,在那里我需要在Sharepoint站点中进行身份验证。我正在使用()

一种用于身份验证的链接。在请求MS Forefront threat management gateway进行身份验证期间,我的疑问是,是否有任何方法可以在应用程序内身份验证到我的共享点站点,而无需使用SharepointREST API服务(Forefront threat management gateway)

根据要求,我无法使用web浏览器进行身份验证

我在共享点身份验证方面没有太多专业知识。所以请帮帮我。我并不期待一个完整的端到端答案,而是请指导我从我的端实现同样的答案


NB:该应用程序正在企业环境中运行。您有一些选择。Forefront(默认情况下)配置为在使用UserAgent指定某个客户端时支持基本回退。通过测试,我发现您应该创建一个包含“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");
            }
        }

如果你能提供样品,那就太好了。。如果我遵循上述步骤,是否可以从我的客户端应用程序使用HttpWebRequest进行身份验证请提供一些示例或代码片段。我也面临着同样的问题,我认为在HttpWebRequest/HttpClientChange中将我的用户代理从(Mozilla/4.0(兼容;MSIE 8.0;Windows NT 6.1;Trident/4.0))改为“MSRPC”是不可能的