问题
I'm using the AFNetworking Framework for iOS. I've subclassed AFHttpClient and are using it as a singleton, i.e. [TestAFClient sharedClient]
I'm consuming an ASP.NET Web Service API that requires the use of the .ASPXAUTH cookie. First I have to authenticate, receive the .ASPXAUTH cookie in response, and then must pass this cookie with each subsequent request.
After a few tests, it appears that, because I'm using a singleton AFHTTPClient, the .ASPXAuth cookie persists and, thus, no explicit storage of the cookie is required.
However, as part of my App, I need to "logout" at some point.
What is the most efficient way to clear this cookie, in order to logout? Set the singleton to nil
and re-initialize it? Do something like setValue:forKey:
?
Additionally, is it better that I explicitly store the .ASPXAUTH cookie? And does this expire or automatically renew if necessary?
Thanks,
Robby
回答1:
Cookies are actually handled by the underlying URL-loading system, similar to the way cacheing is handled automatically by NSURLCache
. For [NSHTTPCookieStorage sharedHTTPCookieStorage]
, you'll want to find the cookie at your baseURL
, and then delete it. You can explicitly set or modify an existing cookie in the same way.
来源:https://stackoverflow.com/questions/9933688/ios-afnetworking-asp-net-web-api-aspxauth-storage-and-deletion