Pourquoi faire mon travail d'adhésion personnalisé et fournisseur de rôle au niveau local, mais ne parviennent pas après le déploiement?

StackOverflow https://stackoverflow.com/questions/9301572

Question

Je créé un abonnement personnalisé et fournisseur de rôle à tirer parti de l'authentification et l'autorisation intégrée dans ASP.NET MVC 4. Tout avait été va bien au cours du développement de ma demande jusqu'à ce que j'ai essayé de le déployer dans un environnement de test.

Lancement de l'application en mode débogage de Visual Studio fonctionne parfaitement bien. Cependant, je puis utiliser un déploiement de clic de Visual Studio pour charger mon application dans une instance de IIS en cours d'exécution sur ma machine de développement. Je suis en mesure de charger l'application dans mon navigateur, mais l'authentification ne fonctionne plus. En utilisant Fiddler, je vois qu'un cookie est renvoyé, mais je suis incapable de parties d'accès du site qui sont limitées en utilisant des attributs [Authorize].

Voici un extrait pertinent de mon web.config.

<membership defaultProvider="PonosMembershipProvider">
  <providers>
    <clear />
    <add name="PonosMembershipProvider" type="Ponos.Identity.PonosMembershipProvider" connectionStringName="DefaultConnection" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/Ponos" />
  </providers>
</membership>
<roleManager enabled="true" defaultProvider="DefaultRoleProvider">
  <providers>
    <clear />
    <add name="DefaultRoleProvider" type="Ponos.Identity.PonosRoleProvider" connectionStringName="DefaultConnection" applicationName="/Ponos" />
  </providers>
</roleManager>

En outre, je mis le nom de l'application à la fois fournisseur personnalisé avec la logique comme suit:

public override string ApplicationName
    {
        get
        {
            return "Ponos";
        }
        set
        {
            throw new NotImplementedException();
        }
    }

En outre, après avoir fixé à l'instance en cours d'exécution d'IIS, je vois que les informations saisies dans le formulaire de validation passe, mais qu'aucun accès est accordé aux pages qui ont limité l'accès autorisé.

En outre, la base de données utilisée pour le déploiement est rempli avec les mêmes valeurs que la base de données de développement.

Pourquoi ne pas les fournisseurs de travailler après le déploiement quand ils fonctionnent bien dans l'environnement de débogage?

Était-ce utile?

La solution 2

Ce problème n'a été lorsque mon montrant serveur déployé est directement accessible par son adresse IP. Lorsque j'ai ajouté un hôte entrée mappage d'un domaine à l'adresse IP, puis définir le même domaine dans mon cookie auth le problème a été résolu.

Je ne sais pas pourquoi je ne pouvais pas accéder au cookie si le domaine était une adresse IP, mais cela fait résoudre le problème.

Autres conseils

« Je vois que les informations saisies dans le formulaire de validation passe, mais qu'aucun accès est accordé aux pages qui ont limité l'accès autorisé. »

apparaît comme problème de permissions!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top