나는 사용자 인증 웹 사이트를로드하는 UIWebView
가 있습니다. 사이트에서 인증 쿠키를 만듭니다. 브라우저에서 쿠키를 지우지 않으면 항상 로그인하게됩니다. xCODE가로드되면 쿠키 항아리를 볼 때 나열된 쿠키를 볼 수 있지만 WebView로 전송되지는 않습니다. WebView가 auth 쿠키가 있다는 것을 WebView에 알리는 방법을 알고 싶습니다. 매번 인증을 요구하는 메시지를 계속 표시하지 않습니다.iOS UIwebView 인증 쿠키
5
A
답변
7
NSURLConnection 클래스를 사용하여 웹 사이트에 로그인하고 쿠키를 검색하는 HTTP 요청을 수행 할 수 있습니다. 요청을 수행하려면 NSURLConnection의 인스턴스를 만들고 여기에 대리자 객체를 할당하면됩니다.
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.com/"]];
NSURLConnection *connection = [NSURLConnection connectionWithRequest:request delegate:self];
그런 다음 대리인 메서드를 구현하십시오.
- (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
}
쿠키 문자열을 유지하거나 복사하십시오. 다른 요청을 수행하려면 NSURLRequest 인스턴스의 HTTP 헤더에 추가하십시오.
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.com/"]];
[request addValue:cookie forHTTPHeaderField:"Cookie"];
는 쿠키 언제든지이 메서드를 호출 할 수 있습니다 삭제하려면
NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (NSHTTPCookie *each in [[[cookieStorage cookiesForURL:YOUR_URL] copy] autorelease]) {
[cookieStorage deleteCookie:each];
}
2
나는이 문제를 해결했다. UIWebView가 표준 웹 브라우저로 보이지 않으므로 문제는 구성과 관련이 있습니다. 나는 .net과 IIS를 통해 사용자를 인증하고있다. 내 웹 사이트의 App_Browser 디렉토리에 generic.browser 파일을 추가했습니다. 파일의 내용은 다음과 같습니다
<browsers>
<browser refID="Mozilla" >
<capabilities>
<capability name="cookies" value="true" />
</capabilities>
</browser>
<browser refID="Default">
<capabilities>
<capability name="cookies" value="true" />
</capabilities>
</browser>
</browsers>
문제가 쿠키를 허용 기능입니다 수정 라인입니다.
내가 사용하는 솔루션에 대한 언급이
4
당신은 공유 쿠키의 저장을 사용하여 모든 웹 사이트에서 인증 쿠키를 읽을 수 있었다.
NSHTTPCookie *cookie;
NSHTTPCookieStorage *cookieJar = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (cookie in [cookieJar cookies])
{
NSLog(@"%@", cookie);
}
는 또는 당신의 웹 사이트를위한
NSArray *cookiesForURL = [cookieJar cookiesForURL: [NSURL URLWithString: **MYURL**]];
for (cookie in cookiesForURL)
{
if([cookie.name compare:@".ASPXAUTH"] == NSOrderedSame)
{
NSLog(@"%@", cookie);
break;
}
}
관련 문제
- 1. UIWebView 인증 예
- 2. UIWebView (iPhone)에서 쿠키 사용
- 3. UIStepper in UIWebView - iOS
- 4. iOS UIWebView 제한
- 5. iOS - 이미지로 UIWebView 캡쳐
- 6. iOS UIWebView 문제
- 7. DOM 준비가되어있는 iOS UIWebView
- 8. IOS UIWebView 인코딩
- 9. iOS UIWebView html builder?
- 10. iOS : 서버에서 UIWebView 내용로드
- 11. IOS UIWebView 누설
- 12. ASP.NET MVC 인증 쿠키
- 13. 에뮬레이션 ASP.NET 인증 쿠키
- 14. 폼 인증 쿠키 취약점
- 15. 쿠키 및 인증 -ASP.net
- 16. 지역 인증 및 쿠키
- 17. GWT RPC 쿠키 인증
- 18. 쿠키 기반 인증 보안
- 19. 인증 쿠키 asp.net
- 20. 인증 쿠키 만료
- 21. 쿠키 또는 인증 공유
- 22. Ajax : HTTP 기본 인증 및 인증 쿠키
- 23. Phonegap의 쿠키 iOS App
- 24. iOS - tmp 폴더에있는 이미지를로드하는 UIWebView
- 25. iOS UIWebView, CSS 및 백분율
- 26. iOS UIWebView 메모리 사용량 추적
- 27. iOS 4 UIWebView Javascript의 문제
- 28. ASP.Net LinkButton 및 iOS UIWebView
- 29. iOS 6 UIWebView 대리자 메서드
- 30. iOS UIWebView 인터셉트 링크 클릭
확인의 .NET aspxauth 쿠키를 얻기 위해, 나는 엑스 코드에 새로 온 사람과 나는 이것에 대해 질문이 있습니다. 이름이 너무 간단하면 이름을 불러주세요. AppDelegate.m 파일에서 NSURL 및 NSURLConnection을 선언하고 비공식 상수가 아닌 컴파일러 오류가 발생했습니다. AppDelagate.m에서도 위임을 구현했으며 컴파일되었습니다. NSMutable 나는 어떤 방법으로 가야하는지 전혀 모른다. 나는 이것이 단순한 질문이라고 확신하지만, 나는 정말로 모른다. – Hector