IIS7.5を使用していくつかのFTPサイトをセットアップしました。サイトはホスト名を使用してそれらを区別します。ホスト名を使用することの1つの欠点は、ftpサイトのアドレスをユーザー名に渡さなければならないことです。
Ftpアドレス: ftp://ftp.example.com
ユーザー名:ftp.example.com | User1
パスワード:psswrd
少なくとも接続アドレスの一部としてユーザー名を渡したいのですが、 ftp://ftp.example.com | [email protected] ですが、Windowsエクスプローラー(Windows 7)を使用してこれを行うことができませんでした。この手法を試すたびに、ユーザー名とパスワードの入力を求められます。
サーバーにuseDomainNameAsHostName = Trueを設定しました。これにより、ユーザー名の柔軟性が少し向上しますが、それでも機能しません。 ftp://ftp.example.com%[email protected]/ または ftp://User1%40ftp.example.comのいずれでもない@ ftp.example.com / は、IE9またはChromeで何らかの違いをもたらすようです。
どこが間違っているのですか?
IIS 7.5での作業は、FTPサーバーの新しい仮想ホスト名に関しては、少し気が遠くなるようなものです。しかし、yoru IIS 7.5サーバーを正しく、IE、Chrome、およびその他のブラウザーが、IIS 7.5が処理できるのと同じ方法でこれらのタイプの仮想ホスト要求を処理する方法を知らない。
現在利用可能な唯一の回避策は、次のように引用することです:
Internet Explorer、Windows Explorer、および仮想FTPサイトの問題
Internet ExplorerとWindows Explorerの両方が最初に匿名でFTPサーバーに接続しようとします。失敗すると、資格情報の入力を求められます。FTP7が仮想ホスト名ベースのサイトでのみ構成されている場合、これらのクライアントは失敗します。匿名ログオンは、FTP仕様(RFC 959)が有効である限り有効ですが、それでもこれらのクライアントの認証シーケンスを混乱させます。 Robert McMurrayはずっと前に問題に気づき、次のブログで簡単な回避策を提案しました http://blogs.msdn.com/robert_mcmurray/archive/2008/12/17/ftp-clients-part-3- Creating-a-global-listener-ftp-site.aspx 。
この問題に対処するには、ホスト名で構成されていないGlobalListenerFtpSiteを作成する必要があります。匿名アクセスを拒否する必要があります。実際には、サイトへのアクセスを許可しないでください(承認セクションは空のままにします)。このサイトは、IEおよびWindowsエクスプローラーに適した方法で匿名ログオンを拒否します。その後、すべてが期待どおりに機能します。Robertのブログエントリに、トピックに関する詳細情報が記載されています。
次の記事からさらに詳しい情報を見つけて、書き留めることができます。 仮想FTPサイト(FTP 7.5)の「|」区切り文字の問題に対処する
私は本当のエラーが何であるかを本当に理解していません。
ftp://username:[email protected]
を使用して接続する必要があります。ユーザー名でドメインを渡す必要があると思うという事実は、私には意味がありません。
しかし、あなたの例では、ユーザー名に|
を使用すると、ブラウザはそれを%
で何かに変更しようとします。エラーログを確認して、元に戻す必要があると思います。
ユーザー名のみを渡すと、希望どおりに機能しません。つまり、その後はパスワードのみを入力する必要があります。次のようにURLを送信する場合
サーバーはパスワードなしでユーザーを認証しようとしますが、失敗するため、サーバーはユーザー名とパスワードを再度要求します。したがって、表示されるダイアログボックスに両方を再度入力する必要があります。
Chromeで試してみました。サーバーにpingを実行する前でも、ユーザー名はURLから消去されます。 Firefoxはページをロードせず、Operaは内蔵のFTPマネージャーを使用して認証に失敗したと言い、ユーザー名とパスワードの両方を要求します。
理想的には、探している形式はftp://user@website
。
ただし、このようなアドレスを使用した結果は、Webサーバーではなくクライアントのブラウザーに依存します。
Firefoxは要求されたとおりのことを行い、パスワードの入力のみを要求します。
Internet Explorerは指定されたユーザーを無視し、両方を要求します。