Désactiver l'Authentification par Formulaires sur sous-dossier ou un Répertoire Virtuel

Voici mon scénario:

J'ai un site web mis en place dans IIS (7.5) qui utilise l'Authentification par Formulaires. J'ai un sous-dossier à l'intérieur de ce site que je suis en utilisant un partage WebDAV. J'ai un Module HTTP personnalisé de suivi de mes demandes WebDAV et agit également comme un niveau d'authentification personnalisée. Cette coutume d'authentification envoie d'abord un HTTP 401 Défi pour obtenir les identifiants de l'utilisateur quand ils essayez de mapper un lecteur de mon partage WebDAV, puis les informations d'identification sont analysées hors de la Base en-tête d'Authentification côté serveur. Le problème est que la Base d'un en-tête d'Authentification ne sera envoyé que si les Formulaires d'Authentification est désactivée.

Ce qui est plus est que, normalement, quand mon HTTP Module ne trouvez pas un en-Tête d'Authentification, 401 Défi est envoyé (qui invite l'utilisateur à entrer des informations d'identification lorsque les Formulaires d'Authentification est désactivée). Cependant, avec des Formes Auth allumé, mon Module HTTP encore s'exécute et envoie un 401 Défi, mais il semble que les Formes Auth est de prendre la priorité donc dans un violon, je peux clairement voir une redirection vers:

/Compte/Login.aspx?ReturnURL=MySubFolder

Le point de l'authentification personnalisée est alors que je peux permettre à l'utilisateur de se connecter à mon site lors du mappage d'un lecteur de mon partage WebDAV. Je veux capturer leur site web des informations d'identification, les authentifier, puis leur montrer le contenu du répertoire.

Donc ma question est:

Est-il un moyen pour obtenir les Formulaires d'Authentification désactivé sur un sous-dossier ou le Répertoire Virtuel à l'intérieur d'un site web qui a des Formulaires d'Authentification activé?

J'ai vérifié que je peux contourner ce problème en créant un nouveau dossier dans mon site web et de mettre le sous-dossier, puis désactiver les Formes Auth sur l'Application elle-même, mais je préfère vraiment ne pas le faire si possible.

Tout ce que j'ai essayé (ci-dessous) a entraîné avec ma demande de carte de lecteur à Http://localhost/MySubFolder arriver repris par l'Authentification de Formulaires (du moins c'est ce que je pense qui se passe) et redirigé vers /login.aspx?ReturnUrl=MySubFolder (comme indiqué dans un violon).

Voici ce que j'ai essayé:

1) Ajouté un Web distincte.config dans MySubFolder:

   <configuration>
     <system.web>
       <authorization>
         <allow users="*"/>
       </authorization>
     </system.web>
   </configuration>

2) Ajouté un <location> dans la balise au niveau de la racine Web.config pour MySubFolder comme ceci:

   <location path="MySubFolder">
     <system.web>
       <authorization>
         <allow users="*"/>
       </authorization>
     </system.web>
   </location>

3) Regardé mise à jour de la Fonctionnalité De Délégation dans IIS.

Personnellement, j'ai eu un doute avec les solutions ci-dessus en raison de ce que j'ai lu, ils sont conçus pour simplement permettre à tous l'accès, tout en laissant de l'Authentification par Formulaires activé. J'ai besoin d'un moyen d'obtenir des Formulaires d'Authentification est désactivé sur mon sous-dossier. Est-ce possible?

Je tiens également à noter que mon sous-dossier pourrait être un Répertoire Virtuel, mais il n'est pas nécessaire d'une façon ou de l'autre. J'ai juste besoin d'un moyen pour les Formulaires Auth être désactivée sur ce dossier.

Selon la demande, de mon site Web.fichier de configuration (au niveau du site):

<?xml version="1.0"?>
<configuration>
  <connectionStrings>
    <add name="MyConnString" connectionString="Persist Security Info=True;Initial Catalog=MyDB;Data Source=MyServer;User ID=UserName;Password=xxxxxxxxxx;MultipleActiveResultSets=True;"/>
  </connectionStrings>
  <system.web>
    <compilation debug="true" strict="false" explicit="true" targetFramework="4.0" />
    <authentication mode="Forms">
      <forms loginUrl="~/Account/Login.aspx" timeout="2880" />
    </authentication>
  </system.web>
  <system.webServer>
    <modules runManagedModulesForWebDavRequests="true" runAllManagedModulesForAllRequests="true">
      <add name="CustomWebDAVModule" type="CustomWebDAVModule"/>
    </modules>
  </system.webServer>
</configuration>
Vous pouvez poster votre web.config fichier. Prenez soin de dissimuler des informations essentielles comme les db d'identification de l'utilisateur, etc lors de la publication.
Merci pour le commentaire, @TanzeelKazi. J'ai regardé dans cette poursuite, et a été en mesure d'étroites ma question pour être plus précis. J'ai aussi la liste de l'ensemble de mon Web.config, qui est très minime dans mes tests. S'il vous plaît laissez-moi savoir si je peux fournir des informations supplémentaires!
Je ne pouvais pas pour la vie de me comprendre pourquoi mon application MVC est le décapage, le nom de répertoire virtuel lors de l'envoi de l'url de connexion. S'avère que j'ai raté le ~.

OriginalL'auteur lhan | 2012-12-12