4

同じネットワーク上のユーザーが共有ネットワーク フォルダーへのリンクを共有することを許可する際に問題があります。ASP.NET を使用すると、生成されるコードは次のようになります。<asp:HyperLink ID="HyperLink1" runat="server" NavigateURL="file://///server/network_folder/" />

残念ながら、私たちが望んでいた効果はありません。IE8、Firefox (15.0.1)、Chrome (21.0.1180.89 m) のいずれであっても、クリックしても何も起こりません。

調べてみると、クライアント ブラウザがサーバーのアクセス許可を許可するように設定されている場合にのみ、その方法でアクセスできる可能性があることがわかりました (明らかに、セキュリティ上の理由による)。

すべてのクライアント ブラウザにアクセス許可を手動で設定する手間を省くために、コード ビハインド ファイル (C#) で一時的なアクセス許可を許可することはできますか?

その他の提案は大歓迎です。

4

2 に答える 2

0

ターゲット フォルダが単純な Windows ネットワーク共有であると仮定します (たとえば、WebDAV 共有ではなく、Internet Explorer のみが、ネゴシエートできる Windows 資格情報を介してアクセスできます。Chrome、FireFox などは自動ではありません)。 Windows 認証プロトコルをネゴシエートして、ターゲット フォルダーに存在する ACL に対してアクセスを承認するために必要な ID を提供します。

IE でもリンクが失敗する理由について、ランタイム リンクが実際に期待どおりであると確信していますか? リンクを解決できない場合は、少なくとも、ファイルまたはリンクが見つからないことを示すポップアップ エラー メッセージが表示されるはずです。まったく反応がないのは、ちょっと気になるところです。

于 2012-09-18T15:39:16.897 に答える
0

セキュリティと実装の問題があるようです:ローカル ネットワーク共有への HTML リンク

ただし、問題のファイルにアクセスし、MIME タイプを設定し、応答ストリームでファイルを返す単純な asp .net 要求ハンドラー (ashx) ファイルを作成できます。これは、ファイルを Web サーバーに送信してから、http 経由で再度送信する必要があることを意味しますが、これはオプションです。

于 2012-09-18T15:36:19.003 に答える