2010-11-30 6 views
1

J'ai un système multi-hébergé, c'est-à-dire que nos clients partagent une base de données. En utilisant MVC Routing, je peux passer le nom du client en tant que première partie du domaine ({customer}.server.tld), et le traduire en un paramètre pour mes actions de contrôleur.Autorisation dans un environnement multi-hébergé

problèmes comprennent:

Autorisation: comment puis-je faire de manière transparente, afin que les développeurs faisant des actions du contrôleur ne doivent pas se rappeler de le faire, et une personne non autorisée recevra automatiquement une 403 si elles ne sont pas autorisés pour voir un client particulier?

Passage de paramètre: Je ne souhaite pas que chaque action de contrôleur ait un paramètre appelé "customerId". Les données ont des clés primaires GUID, ainsi customerId n'est pas requis au niveau de l'accès aux données.

Que dois-je faire ici? Je ne veux pas qu'un utilisateur change l'URL et accède à toutes les données de nos clients!

Répondre

0

Avez-vous envisagé d'utiliser Windows Identity Foundation (WIF)? Cela peut sembler exagéré, mais cela vous permettra non seulement de séparer AuthN d'AuthZ, mais aussi d'avoir une logique de code (en un point!) Où vous pourrez vérifier chaque réclamation client (peut-être en fonction des données de route) et agir en conséquence. .Vérifiez certains de ces liens:

Questions connexes