4 votes

Établir un lien avec un dossier réseau en ASP.NET

Nous avons un problème pour permettre aux utilisateurs du même réseau de partager des liens vers des dossiers réseau partagés. En utilisant ASP.NET, le code généré est le suivant : <asp:HyperLink ID="HyperLink1" runat="server" NavigateURL="file://///server/network_folder/" />

Malheureusement, elle n'a pas l'effet souhaité ; elle ne fait rien lorsqu'on clique dessus, que ce soit sur IE8, Firefox (15.0.1) ou Chrome (21.0.1180.89 m).

En cherchant un peu, j'ai découvert qu'il n'était possible d'y accéder de cette manière que si le navigateur du client est configuré pour autoriser les autorisations pour le serveur (apparemment, pour des raisons de sécurité).

Afin d'éviter de devoir définir manuellement les autorisations pour chaque navigateur client, est-il possible d'autoriser des autorisations temporaires dans le fichier code-behind (C#) ?

Toute autre suggestion est la bienvenue.

0voto

Steven Hunt Points 1415

Il semble y avoir des problèmes de sécurité et de mise en œuvre : Liens HTML vers les partages du réseau local

Cependant, vous pourriez créer un simple fichier asp .net request handler (ashx) qui pourrait accéder au fichier en question, définir le type mime et renvoyer le fichier dans le flux de réponse. Cela signifierait que le fichier devrait être envoyé à votre serveur Web, puis transmis à nouveau par http, mais c'est une option.

0voto

David W Points 5303

En supposant que le dossier cible soit un simple partage réseau Windows (plutôt que, par exemple, un partage WebDAV), seul Internet Explorer pourra y accéder via les informations d'identification Windows qu'il peut négocier. Chrome, FireFox, etc. ne négocient pas automatiquement le protocole d'authentification de Windows pour fournir l'identité nécessaire à l'autorisation d'accès par rapport aux listes de contrôle d'accès (ACL) existant sur le dossier cible.

En ce qui concerne la raison pour laquelle le lien échoue même dans IE, êtes-vous certain que le lien d'exécution est bien celui que vous attendez ? Si le lien ne peut être résolu, vous devriez au moins obtenir un message d'erreur contextuel indiquant que le fichier ou le lien n'a pas pu être trouvé, quelque chose de ce genre. Ne pas recevoir de réponse est un peu curieux.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X