Tôi có một UIWebView
tải trang web xác thực người dùng. Trang web tạo cookie Xác thực. Khi trong trình duyệt, trừ khi bạn xóa cookie, bạn sẽ luôn được đăng nhập. Khi xCODE tải nó có thể thấy cookie được liệt kê khi nhìn vào lọ cookie nhưng nó không được gửi đến webView. Tôi muốn biết cách làm cho webView biết rằng cookie auth có đó để nó không tiếp tục nhắc người dùng xác thực mỗi lần.iOS UIwebView Cookie xác thực
Trả lời
Bạn có thể sử dụng lớp NSURLConnection để thực hiện yêu cầu HTTP để đăng nhập trang web và truy xuất cookie. Để thực hiện một yêu cầu, chỉ cần tạo một thể hiện của NSURLConnection và gán một đối tượng delegate cho nó.
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.com/"]];
NSURLConnection *connection = [NSURLConnection connectionWithRequest:request delegate:self];
Sau đó, triển khai phương thức đại biểu.
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
NSHTTPURLResponse *HTTPResponse = (NSHTTPURLResponse *)response;
NSDictionary *fields = [HTTPResponse allHeaderFields];
NSString *cookie = [fields valueForKey:"Set-Cookie"]; // It is your cookie
}
Giữ lại hoặc sao chép chuỗi cookie. Khi bạn muốn thực hiện một yêu cầu khác, hãy thêm nó vào tiêu đề HTTP của cá thể NSURLRequest của bạn.
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.com/"]];
[request addValue:cookie forHTTPHeaderField:"Cookie"];
ĐẾN xóa Cookie bất cứ lúc nào bạn có thể gọi phương pháp này:
NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (NSHTTPCookie *each in [[[cookieStorage cookiesForURL:YOUR_URL] copy] autorelease]) {
[cookieStorage deleteCookie:each];
}
tôi giải quyết vấn đề này. Vấn đề phải làm với cấu hình vì UIWebView không được xem như là một trình duyệt web tiêu chuẩn. Tôi đang xác thực người dùng thông qua .net và IIS. Tôi đã thêm tệp generic.browser vào thư mục App_Browser của trang web của mình. Nội dung của tập tin là:
<browsers>
<browser refID="Mozilla" >
<capabilities>
<capability name="cookies" value="true" />
</capabilities>
</browser>
<browser refID="Default">
<capabilities>
<capability name="cookies" value="true" />
</capabilities>
</browser>
</browsers>
Dòng mà sửa chữa vấn đề này là khả năng cho phép cookie.
Các tham chiếu đến các giải pháp tôi sử dụng là này
Bạn có thể đọc cookie xác thực từ tất cả các trang web bằng cách sử dụng Lưu trữ cookie chia sẻ.
NSHTTPCookie *cookie;
NSHTTPCookieStorage *cookieJar = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (cookie in [cookieJar cookies])
{
NSLog(@"%@", cookie);
}
OR để có được các tập tin cookie aspxauth .net cho trang web của bạn
NSArray *cookiesForURL = [cookieJar cookiesForURL: [NSURL URLWithString: **MYURL**]];
for (cookie in cookiesForURL)
{
if([cookie.name compare:@".ASPXAUTH"] == NSOrderedSame)
{
NSLog(@"%@", cookie);
break;
}
}
- 1. Bật cookie trong UIWebView (iPhone)
- 2. Đặt cookie cho các yêu cầu UIWebView
- 3. Emulate ASP.NET xác thực Cookie
- 4. Xóa thông tin xác thực từ UIWebView
- 5. Xác thực IOS https
- 6. IOS xác thực Mutual
- 7. URL không tải UIWebView, iOS
- 8. Đảm bảo xác thực dựa trên cookie
- 9. xác thực trong iOS - bạn có thể sử dụng cookie/phiên không?
- 10. Emoji và UIWebView trong iOS 5
- 11. ios - UIWebView DidFinishLoad không được gọi là
- 12. Cách triển khai Xác thực NTLM cho UIWebView?
- 13. Có lưu trữ cookie riêng cho hai UIWebView không?
- 14. Sự cố UIWebView trên iOS trong "WebThread"
- 15. Nhận xét trên Facebook trong iOS UIWebView
- 16. Không thể cuộn trong UIWebView trong iOS
- 17. in iOS hoà nhiệt độ gắn UIWebView
- 18. UIWebView iOS 5: Lỗi WebKit/JavaScriptCore
- 19. Vấn đề bàn phím UIWebView iOS 7
- 20. Cookie của UIWebView được lưu trữ ở đâu?
- 21. iOS: Mã xác thực của Google
- 22. Lưu trữ mã xác thực trên iOS
- 23. Xác thực proxy HTTP trong iOS 4.3
- 24. Cách thay thế cho phiên/xác thực dựa trên cookie
- 25. Trạng thái xác thực web - Phiên so với cookie?
- 26. đăng nhập xác thực không hợp lệ với cookie
- 27. Hashing & Salting - Xác thực đăng nhập bằng cookie
- 28. Cookie xác thực/phiên xóa sau khi trình duyệt đóng
- 29. Xác thực dựa trên cookie hoạt động như thế nào?
- 30. Cách hiển thị nội dung html trên UIWebView IOS
Ok, tôi mới để Xcode và tôi có thắc mắc về vấn đề này. Hãy gọi cho tôi tên nếu chúng quá đơn giản. Trong tệp AppDelegate.m tôi cố gắng khai báo NSURL và NSURLConnection và nhận được một lỗi trình biên dịch về những hằng số không có dấu. Tôi đã thực hiện ủy nhiệm cũng trong AppDelagate.m và biên dịch. NSMutable Tôi không biết nên dùng phương pháp nào. Tôi chắc chắn đây là những câu hỏi đơn giản nhưng tôi thực sự không biết. – Hector