Avec le fournisseur d'appartenance par défaut pour les projets MVC 2, je peux faire référence à User.Identity.UserName
en fonction de ce qu'il crée par défaut. Je ne veux pas faire ça - je veux utiliser mes propres tables. J'ai donc implémenté la classe System.Web.Security.MembershipProvider. La seule chose que j'ai implémentée, comme beaucoup de messages sur le web et SO, est ValidateUser(string username, string password)
Comment puis-je référencer ma propre table avec la propriété MVC Controller.User?
Je peux facilement voir cela accepte les chaînes de nom d'utilisateur et mot de passe, j'accède à mon contexte de base de données (LINQ aux entités, en fait le fournisseur dotConnect pour MySQL), et vérifiez le nom d'utilisateur et mot de passe - assez simple. Mais, comment puis-je rendre l'objet Controller.User utiliser les propriétés de ma propre table. Par exemple, ma table s'appelle Staff. Il a StaffID (PK), Prénom, Nom, etc. Comment puis-je accéder au StaffID de l'utilisateur contextuel actuel comme suit?
int id = User.StaffID;
Je trouve ce poste par Matt Wrock, mais je ne peux pas vraiment de sens de mettre en œuvre la classe utilisateur, plus précisément la méthode IsInRole. Quand cet objet est-il construit et d'où viennent les arguments du constructeur?
J'aime l'idée de ne pas utiliser le MembershipProvider, mais je suis confus par "de tout type que vous voulez utiliser (probablement Linq 2 Sql type)." Existe-t-il des types d'utilisateurs de fournisseur de données? Ou est-ce une classe personnalisée? Heureusement, j'ai déjà un contrôleur de base en place pour gérer certaines exceptions personnalisées. –
C'est une classe personnalisée. Dans mon application, j'ai une table 'Users' et j'utilise Linq2SQL pour générer des classes. J'utilise la classe 'User' que Linq2SQL génère pour la propriété' CurrentUser'. – Omar
Je pense que je suis. Mes utilisateurs sont dans la table Staff. Donc la propriété CurrentUser que vous avez utilisée ci-dessus devrait être de type Staff, n'est-ce pas? –