1

少し問題があり、この厄介な問題を解決するのを手伝ってくれることを願っています.

管理パネルでiFrameを使用して、ユーザーが選択サービスを使用できるようにする必要があり、HTMLで次のようにします。

<iframe scrolling="yes" runat="server" title="Par Selection" id="iFrame"
    frameborder="0" enableviewstate="true" width="100%" height="490" />

私のコードビハインドファイルには次のものがあります:

iFrame.Attributes.Add("src", String.Format(
            "https://www.parurval.se/urval/?username={0}&password={1}",
            parSettings.GetSettings(parSettings.SettingsType.PARSelection, parSettings.SectionType.Username),
            parSettings.GetSettings(parSettings.SettingsType.PARSelection, parSettings.SectionType.Password)));

出力は次のとおりです。

<iframe id="tcMain_tabPARSelection_iFrame" scrolling="yes" title="Par Selection" 
   frameborder="0" width="100%" height="490" 
   src="https://www.parurval.se/urval/?username=myUsername&amp;password=myPassword">
</iframe>

ユーザー名とパスワードを渡すときは、代わりに src アドレスでサインインすることに注意してください&amp;&

どうすればこれを防ぐことができますか?

私は HttpUtility.Decode( myCompleteUrl ) で試しましたが、同じ成果が得られました:(

最悪なのは、src コードにアドレスしかない場合です。

... src="https://www.parurval.se/urval/" ...

ユーザー/パスワードを入力できません。フォームが表示され、テキストを入力できますが、何もしません。iframe 内部ページを更新するだけで、これをフル ウィンドウで実行すると正常に動作します。

そして、その管理パネルで、ユーザーにテキストボックスを追加して、管理ページに入るようにユーザー名とパスワードを追加します。iFrame のサービスに直接ジャンプするので、ユーザーは毎回ログインするために user/pwd を入力する必要がありません。 、つまり、これらの値を動的に追加しようとしている方法です。

何か案は?

追加: HTML 側 (動的ではない) の iFrame src 属性に正しい URL アドレス (ユーザーと pwd を含む) を入力すると、すべて正常に動作します:(

4

5 に答える 5

5

&amp;の存在感。は実際に正しいです。ほとんどのブラウザーは、& を表示するだけで窒息しないよう十分に寛容ですが、技術的には正しくありません。

于 2009-01-15T09:02:18.210 に答える
2

「&」は HTML (より具体的には SGML) の特殊文字であるため、これをエンコードすることは正しいことです。はい、リンク URL でも可能です。

于 2009-01-15T09:02:47.073 に答える
1

HTML4.01仕様には次のように記載されています。

著者は「&amp;」を使用する必要があります (ASCII 10進数38)文字参照(エンティティ参照オープン区切り文字)の先頭との混同を避けるために、「&」の代わりに。著者は「&amp;」も使用する必要があります CDATA属性値内で文字参照が許可されているため、属性値で。

したがって、属性値(CDATAデータ型)の解釈は次のように記述されるため、 &asのエンコード&amp;は正しい動作です。src

CDATAは、ドキュメントの文字セットからの文字のシーケンスであり、文字エンティティを含めることができます。ユーザーエージェントは、属性値を次のように解釈する必要があります。

  • 文字エンティティを文字に置き換え、
  • 改行を無視し、
  • 各キャリッジリターンまたはタブを1つのスペースに置き換えます。

そうしないと、srcのような属性値は、文字通りまたは(エンティティを置き換える)として/foo?bar&sect=123解釈される可能性があるため、あいまいになります。/foo?bar&sect=123sect/foo?bar§=123

于 2009-01-15T12:14:02.147 に答える
-1

これは、URL エンコーディングを利用して & を非表示にし、XML エンコーディングをバイパスできる場合のようです。& は U+0025 なので、%25 としてエンコードできます: https://www.parurval.se/urval/?username= {0}%25password={1}

于 2009-01-15T09:00:23.863 に答える
-3

使用する必要があります

     HttpUtility.HtmlEncode(String.Format("https://www.parurval.se/urval/?username={0}&password={1}",            
parSettings.GetSettings(parSettings.SettingsType.PARSelection, parSettings.SectionType.Username),            
parSettings.GetSettings(parSettings.SettingsType.PARSelection, parSettings.SectionType.Password)));
于 2009-01-15T09:02:09.367 に答える