从iOS应用程序向Safari传递凭据

从iOS应用程序向Safari传递凭据,ios,http,authentication,safari,xamarin.ios,Ios,Http,Authentication,Safari,Xamarin.ios,我正在Monotouch中开发iOS应用程序。其中一部分是连接到exchange服务器并下载电子邮件列表。我希望能够在OWA客户端中打开电子邮件(因此我不必重新创建电子邮件客户端来免费提供OWA提供给我的功能) 但是,我不希望用户必须再次输入凭据。在safari中打开OWA通常会向用户显示一个表单或弹出窗口,询问用户名和密码 假设我有一个用户admin和密码password1。目前我所做的是请求safari以以下形式打开链接: https://admin:password1@邮件服务器/exch

我正在Monotouch中开发iOS应用程序。其中一部分是连接到exchange服务器并下载电子邮件列表。我希望能够在OWA客户端中打开电子邮件(因此我不必重新创建电子邮件客户端来免费提供OWA提供给我的功能)

但是,我不希望用户必须再次输入凭据。在safari中打开OWA通常会向用户显示一个表单或弹出窗口,询问用户名和密码

假设我有一个用户
admin
和密码
password1
。目前我所做的是请求safari以以下形式打开链接:

https://admin:password1@邮件服务器/exchange

这会将凭据传递给safari,并绕过OWA通常会弹出的HTTP基本身份验证,但是它不是非常安全,safari抱怨可能存在网络钓鱼攻击


执行这种绕过HTTP基本身份验证的操作还有哪些其他选项?

我建议使用HttpWebRequest下载每个页面并手动设置UIWebView的文本。使用HttpWebRequest,您可以灵活地使用任何cookie、凭据、http头等


这将是一个棘手的问题,但可能是安全获取凭证的唯一方法。不确定您的OWA应用程序是否也能处理它。

这不会导致单击UIWebView内的链接时出现问题吗?您可以在导航(并取消)时获取事件并自己执行请求。我已经用一个现有的应用程序做到了这一点。