我们正在尝试在使用表单身份验证的 MVC3 网站上实现 iOS Over The Air (OTA) 安装。
安装页面仅对经过身份验证的用户可用。我们还想使用 Forms Authentication 锁定实际的 *.plist 和 *.ipa 文件。这是为了防止有人在知道 url 的情况下尝试直接安装文件。
一旦我们设置了所有安全措施,我们就无法成功安装该应用程序。iPad 浏览器返回错误:“无法连接到 XXXX.com”。如果我们允许所有用户访问文件所在的文件夹,则安装成功完成。
这就是我们的问题。OTA 安装请求似乎没有在其请求中包含身份验证 cookie。目前,这是我们对正在发生的事情的最佳猜测,因为当我们允许所有用户访问该文件夹时,一切正常。此外,我们检查了 IIS 日志,似乎得出了相同的结论。
以下是相关的日志文件信息:
2012-04-05 20:42:37 XXX.XXX.XXX.XXX 获取 /[网站]/[安全文件夹]/[文件].plist - 80 - XXX.XXX.XXX.XXX iTunes-iPad-M/5.0 .1+(32GB) 302 0 0 46
2012-04-05 20:42:37 XXX.XXX.XXX.XXX GET /[WEBSITE]/login ReturnUrl=%2f[WEBSITE]%2f[SECURED FOLDER]%2f[FILE].plist 80 - XXX.XXX。 XXX.XXX iTunes-iPad-M/5.0.1+(32GB) 200 0 0 15
我们对日志文件的解释是对/[WEBSITE]/[SECURED FOLDER]/[FILE].plist的请求被拒绝并返回 302。记录的下一个请求是应用程序的登录页面,其中 plist 文件的路径作为返回 url:/[WEBSITE]/login ReturnUrl=%2f[WEBSITE]%2f[SECURED FOLDER]%2f[FILE].plist
关于我们如何克服这个问题的任何想法?