2010-10-13 6 views
1

J'essaie de créer un modèle d'objet de sécurité basé sur un nom d'utilisateur-mot de passe simple pour mon application. L'exigence est que l'utilisateur entrera en utilisant le nom d'utilisateur et mot de passe et il/elle aura activer et désactiver l'accès à la partie du système en fonction du rôle dans lequel ils tombent. ce que je pense est une idée assez simple.Modèle d'objet de sécurité .net

Maintenant, voici ma requête. J'ai une classe de base dans l'objet métier qui hérite de toutes les autres classes. Dans mon projet de sécurité, il y aura quelques classes pour, par exemple, Security, Identity (qui contient des informations userprofile) etc. L'idée est que ma classe de base utilisera cet objet de sécurité et que les classes héritées peuvent référencer cet objet de sécurité pour un utilisateur donné (connecté). Donc par exemple si je suis connecté à l'application et que je suis allé accéder au module comptes, car le module compte hérite de ma classe de base il a la connaissance de qui suis-je, quel rôle je suis tombé dans etc ... Donc je peux avoir une propriété CanExecute dans mes comptes qui peut être activé/désactivé selon le rôle de l'utilisateur. J'espère que j'ai essayé de rendre cela aussi clair que possible. J'apprécierais vraiment toutes les entrées en termes de codage et en termes d'architecture.

Un grand merci, Preyash

+1

quand vous dites 'construire', voulez-vous dire la mise en œuvre de la FormsAuthentication & Les classes MembershipService qui existent déjà ?? (voir System.Security et System.Security.Principal) –

+0

Désolé par la construction, je veux dire développer. Le projet est en cours de développement. Je n'ai pas encore utilisé les classes de formauthentication et de mémorisation. Pensez-vous que ce serait la bonne voie à suivre? Ma base de données utilisateur est très simple avec peu de tables (Utilisateurs, Rôles). – daehaai

+0

activebiz - Je pense que vous devriez probablement utiliser les foms/membres intégrés car cela vous donne également (gratuitement) tous les contrôleurs et les décorateurs d'action [Authorize] etc., ce qui vous permettra de faire ce que vous voulez immédiatement au niveau du contrôleur . De plus, vous pouvez utiliser les tickets d'authentification, etc., etc. Vous pouvez également créer un profileprovider personnalisé qui vous permettra d'attacher votre table utilisateur directement dans la classe profileecommon. il y a beaucoup de bons liens sur ce genre de choses. Je les regarderai un peu plus tard si vous pensez que cela pourrait être un meilleur moyen de descendre. –

Répondre

2

.net a ce genre de choses construit. Regardez en GenericPrincipal et autorisation. ASP.NET a également Authenication intégré.

Par exemple: http://www.15seconds.com/issue/041208.htm et ici: http://www.codeproject.com/KB/security/SecurityModelDotNet.aspx

devrait vous aider à démarrer

+0

Puis-je utiliser GenericPrincipal (et/ou Authorization) avec ma base de données utilisateur personnalisée? Je ne cherche pas à utiliser build dans des choses comme AD (par exemple) Je voudrais vraiment vous expliquer si vous pouvez me diriger dans la bonne direction. – daehaai

+0

Une chose que j'ai oublié de mentionner ici est que c'est pour l'application WPF et non pour ASP.NET. Puis-je toujours utiliser GenericPrincipal? – daehaai

+0

Oh oui. C'est une chose .net pas ASP.NET seulement. Nous utilisons pour toutes nos applications .net (winforms, WPF, console, ASP.net et services) –

1

activebiz,

récapituler en haut:

je pense que vous devriez probablement utiliser le haut-FormsAuthentication & Les classes MembershipService vous donnent également (gratuitement) tous les contrôleurs et les décorateurs d'actions [Authorize] etc, ce qui vous permettra de faire ce que vous voulez niveau de contrôleur immédiatement.

également, vous pouvez utiliser les tickets d'authentification, etc., etc. vous pouvez également créer un profileprovider personnalisé qui vous permettra d'attacher votre table utilisateur directement dans la classe profileecommon. il y a beaucoup de bons liens sur ce genre de choses.

Je les regarderai un peu plus tard si vous pensez que cela pourrait être une meilleure façon de descendre.

[edit] liens comme promis. va ajouter à comme je les trouve. est ici une sur le SO pour commencer:

Implementing Profile Provider in ASP.NET MVC

et un de mon ancien compagnon, Lee Dumond:

http://leedumond.com/blog/asp-net-profiles-in-web-application-projects/

+0

Merci Jim, je crois que c'est sur la même ligne que Preet Sangha parle. Je pense également que c'est une bonne idée car cela donne beaucoup de choses hors de la boîte. Je voudrais appriciate si vous pouvez jeter un coup d'oeil pour moi. Merci, – daehaai