2010-05-21 9 views
5

Mon entreprise a plusieurs applications Web écrites en ASP.NET. Nous devons mettre ces applications à la disposition des utilisateurs de l'intranet ainsi que des utilisateurs externes authentifiés. La plupart des fonctionnalités sont identiques pour les deux groupes, bien que certaines fonctionnalités supplémentaires soient disponibles pour les utilisateurs internes. Les deux différents groupes d'utilisateurs utiliseraient une configuration de sécurité légèrement différente ... nos personnes internes seront authentifiées en utilisant LDAP contre Exchange, tandis que les utilisateurs externes auront des comptes dans SQL Server.Comment déployer et sécuriser une application Web ASP.NET accessible aux utilisateurs internes et externes?

Quelle est la meilleure approche pour déployer nos applications Web? Devrions-nous déployer 2 copies sur différents serveurs, l'un configuré pour un intranet et l'autre pour les utilisateurs externes? Ou existe-t-il un meilleur moyen de partager le code entre les deux serveurs, tout en ayant la possibilité d'utiliser différents paramètres web.config pour la sécurité?

Répondre

3

C'est ce que vous recherchez: http://msdn.microsoft.com/en-us/library/ms972958.aspx

Il est spécifiquement sur les fenêtres mixtes et l'authentification de formulaires.

Vous pouvez sécuriser les dossiers en ajoutant un fichier web.config supplémentaire à ce dossier:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <system.web> 
    <authorization> 
     <allow roles="admin" /> 
     <deny users="*" /> 
    </authorization> 
    </system.web> 
</configuration> 

Que cela ne permet à toute personne le rôle « admin » et nie tous les autres utilisateurs de l'accès aux ressources dans le dossier . Il y a beaucoup de combinaisons et de possibilités disponibles. Notez que l'ordre de déclaration des autorisations est important. Cela vaut la peine d'expérimenter pour que vous compreniez parfaitement comment cela fonctionne.

paramètres spécifiques à la page peuvent être traitées comme ceci:

<location path="page.aspx"> 
    <system.web> 
     <authorization> 
     <allow roles="Administrators" /> 
     </authorization> 
    </system.web> 
</location> 
Questions connexes