针对ASP.NET基本服务的iOS慢速首次身份验证

时间:2013-08-27 17:00:41

标签: ios asp.net-web-api nsurlconnection

是否有其他人对ASP.NET Basic Service的初始身份验证速度较慢?

当我的应用程序第一次登录时,需要大约3-4秒才能对服务器进行身份验证,之后它的速度相当快,但这个初始登录时间会中断用户。

有没有其他人有这个问题?如果是这样,你是如何解决的?该服务正在使用MVC4的WebAPI。

1 个答案:

答案 0 :(得分:1)

我遇到了这个问题,我发现它在第一次连接时多次进行身份验证。

在你的willSendRequestForAuthenticationChallenge方法中,添加此方法以查看首次连接呼叫时的身份验证类型或执行的数量。

NSLog(@"%@",[[challenge protectionSpace] authenticationMethod]);

我发现有这样的多个身份验证:

2013-11-30 11:31:42.181 AppName[1529:70b] NSURLAuthenticationMethodServerTrust
2013-11-30 11:31:50.921 AppName[1529:70b] NSURLAuthenticationMethodNTLM

其中只有一些实际需要auth凭证,其中一些可以使用“NSURLAuthenticationMethodServerTrust”这样的代码跳过

if ([[challenge protectionSpace] authenticationMethod] == NSURLAuthenticationMethodServerTrust){
    [[challenge sender] continueWithoutCredentialForAuthenticationChallenge:challenge];
}

这为我加速了一点。此外,移动到iOS7加速了相当多,因为它将一些NSURLConnection处理移动到操作系统中。除此之外,我无法与我的服务器管理员合作以减轻任何额外的安全性,也许你有更好的运气。