2009-01-08 12 views
1

Nous prévoyons d'utiliser l'authentification utilisateur ASP.NET standard pour notre application. Cependant, par défaut, cela nécessite que nous ayons notre base de données utilisateur sur notre serveur Web dans le dossier App_Data.Base de données d'authentification utilisateur dans le dossier App_Data - n'est-ce pas dangereux?

Ceci est généralement un grand non-non pour nous - nos bases de données sont toutes derrière le pare-feu et tout l'accès est fait via une couche de service WCF.

Si la base de données était sur un serveur différent, mais directement accessible depuis le serveur Web, cela viole toujours nos règles d'architecture habituelles.

Devrions-nous nous soucier de notre base de données d'utilisateurs sur notre site web? ASP.NET offre-t-il une alternative prête à l'emploi?

NOTE: Nous utilisons .NET 3.5 et SQL Server 2005

Répondre

0

Oui, vous devriez vous inquiéter. Non, il n'y a pas de solution prête à l'emploi. ASP.NET est fourni uniquement avec un fournisseur d'appartenances SQL et un fournisseur d'appartenances Active Directory (reference). Vous devrez utiliser un fournisseur d'appartenance personnalisé pour fournir votre fonctionnalité.

6

Vous pouvez installer les tables neccessary db etc., dans une base de données SQL Server.

Utilisez l'Assistant aspnet_regsql.exe trouvé dans C: \ WINDOWS \ Microsoft.NET \ Framework ....... pour configurer la base de données cible.

Ensuite, mettez simplement à jour les chaînes de connexion dans les configurations du fournisseur dans le fichier web.config.

+0

La base de données serait alors toujours accessible depuis le serveur web, donc toujours un risque. –

+0

Identique à votre couche d'accès aux données. Si vous cachez TOUT derrière un service, vous ajoutez une complexité inutile à mon avis (bien sûr, je ne sais pas dans quel domaine vous travaillez). Vous pouvez créer vos propres fournisseurs d'adhésion et exposer via WCF si vous le souhaitez. –

1

Vous pouvez créer votre propre fournisseur d'appartenances personnalisées en remplaçant les méthodes et les propriétés de la classe abstraite suivante: public abstract class MembershipProvider. Une fois que vous les avez surchargés, vous pouvez utiliser n'importe quelle source de données valide pour authentifier l'utilisateur. Par exemple, vous pouvez utiliser MYSQL, SQL server ou même un fichier XML pour authentifier vos utilisateurs. Ces modèles de fournisseurs sont vraiment très cool.

Questions connexes