0

次のコードを実装しようとしています。

NSURL *url = [NSURL URLWithString:@"https://login.XXX.com/security/xxxforms//
logonchalnp.fcc?TYPE=33554433&REALMOID=06-95b0f0c8-198a-1039-b583
83b02659fd47&GUID=&SMAUTHREASON=0&METHOD=GET&SMAGENTNAME=owa5&TARGET=-SM- 
HTTPS%3a%2f%2fowa%2exxx%2ecom%2f"];

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
[request setDelegate:self];
[request setPostValue:@"XXX" forKey:@"USER"];
[request setPostValue:@"XXX" forKey:@"PASSWORD"];
[request startSynchronous];

NSURLResponse *response;
NSError *error;
NSData *urlData = [NSURLConnection sendSynchronousRequest:request
                                        returningResponse:&response 
                                                    error:&error];
NSString *str=[[NSString alloc]initWithData:urlData encoding:NSUTF8StringEncoding];
NSLog(@"Login response: is %@", str);

ウェブサイトの関連コンテンツは次のとおりです。

<form NAME="Login" METHOD="POST" action="/forms/logonchal_l10question.jsp">
<INPUT TYPE=HIDDEN NAME="SMENC" VALUE="ISO-8859-1">
<INPUT type=HIDDEN name="SMLOCALE" value="US-EN">
<center>

<!-- outer table with border -->
<table width="50%" border="1" cellpadding="0" cellspacing="0" align=center>
<tr> 
<td>    
<!-- Login table -->          
<table WIDTH="100%" HEIGHT=200 class="platportletLightBg" border=0 cellpadding=0
cellspacing=0 >

<tr HEIGHT="30" class="platportletHeaderBg">
<td valign=center height=40 align=center colspan=4 >
        <b class="d_banHeader">Please Login</b>
      </td>
    </tr>

    <tr> <td colspan=4 height=20> <font size=1> &nbsp; </font> </td> </tr>

    <tr align="center">
      <td WIDTH=20 >&nbsp;</td>
      <td ALIGN="LEFT" > 
            <b class="customappSubhead"> Username: </b>
      </td>
      <td align=center >
            <input type="text" name="USER" size="30" AUTOCOMPLETE=OFF>
          </td>
      <td WIDTH=20 >&nbsp;</td>
    </tr>

    <tr> <td colspan=4 height=5> <font size=1> &nbsp; </font> </td> </tr>

    <tr align="center" >
      <td WIDTH=20 >&nbsp;</td>
      <td align=left>
            <b class="customappSubhead"> Password: </b>
      </td>
      <td>
        <input type="password" name="PASSWORD" size="30">
      </td>
      <td WIDTH=20 >&nbsp;</td>
    </tr>

    <tr> <td colspan=4 height=20> <font size=1> &nbsp; </font> </td> </tr>

    <tr>
      <td colspan=4 NOWRAP WIDTH="50%" HEIGHT="25" align="CENTER">
          <input type=hidden name=target value="HTTPS://owa.xxx.com/">
          <input type=hidden name=smquerydata value="">
          <input type=hidden name=smauthreason value="0">
          <input type=hidden name=smagentname value="owa5">
          <input type=hidden name=postpreservationdata value="">
          <input type="button" value="Login" onClick="submitForm();">
      </td>
    </tr>

意図した応答: 適切なユーザー名/パスワードを使用してブラウザーから手動で直接ログインすると、Web ページはセキュリティの質問ページにリダイレクトされます。質問への回答が成功すると、Web ベースのアプリケーションの別のログイン ページに進みます。

コードがそのままの状態では、最初のページに正常にログインしますが、セキュリティの質問ページをバイパスして、2 番目のログイン ページに直接移動します。そこから、Web ベースのアプリケーションへのログインは (明らかに?) 失敗します。間違った値が入力された場合に失敗するという点で、少なくとも最初の USER と PASSWORD を正しく取得していることを知っています (間違った資格情報の通知)。正しい値が入力された場合、UIWebView は 2 番目のログイン ページも正確に表示します。補足: この 2 番目のログイン ページには、URL をブラウザに直接入力した場合はアクセスできません。

質問: ここで見落としているリダイレクトがあるかどうかを知りたいですか? ログインの質問が生成されて表示されると思われる action="/forms/logonchal_l10question.jsp" をトリガーするにはどうすればよいですか?

どんな助けでも大歓迎です。

4

1 に答える 1

0

ファイルの場所を教えてください。

以下のNSURL*urlが設定されています

 NSURL *url = [NSURL URLWithString:@"https://login.XXX.com/security/xxxforms//
 logonchalnp.fcc?TYPE=33554433&REALMOID=06-95b0f0c8-198a-1039-b583
 83b02659fd47&GUID=&SMAUTHREASON=0&METHOD=GET&SMAGENTNAME=owa5&
 TARGET=-SM-HTTPS%3a%2f%2fowa%2exxx%2ecom%2f"];

Sun One WebServer を使用しています。

ファイルを見つけることができるファイルの場所と名前を教えてください。彼らがどのOSを使用しているのかわかりません(Solaris/Unix)。

于 2013-11-17T15:36:35.300 に答える