2009-06-08 6 views
0

J'ai une page de base (héritée de System.Web.UI.Page et toutes mes pages héritent de cette page de base) dans mon application Web .Net et en ce moment si je mets le les méthodes suivantes:Profile.GetProfile() sur la classe de base

protected int GetProfileTenant() 
    { 
     try 
     { 
      ProfileCommon p = Profile.GetProfile(Profile.UserName); 
      return Convert.ToInt32(p.TenantID); 
     } 
     catch 
     { 
      return -1; 
     } 
    } 

l'erreur est survenue disant que "le profil de nom n'existe pas dans le contexte actuel".

Cette méthode si je mets ceci dans la page (héritée de la page de base) fonctionne bien (pas de problème).

Des idées?

Merci

Merci

+0

La prochaine fois, s'il vous plaît ajouter une balise qui décrit la technologie que vous utilisez, puisque « fournisseur de membre » est plutôt uninformational. Cette fois, j'ai ajouté asp.net pour vous. – OregonGhost

Répondre

0

Je n'ai pas de réponse claire pour vous, mais il y a une « magie » qui se passe dans les profils de façon travail (une classe correspondant à vos propriétés de profil est généré) . Apparemment, la propriété Profile est injectée dans la classe de page de niveau supérieur. Avez-vous essayé d'utiliser HttpContext.Current.Profile à la place?

1

Ajoutez un espace de noms System.web dans la classe. et essayer

HttpContext.Current.Profile.UserName 
+0

Et plus d'un an plus tard, ce commentaire m'aide beaucoup. J'essayais de faire quelque chose de similaire sur une page de base (obtenir une propriété de profil différente cependant) et cela m'a mis sur la bonne voie. ProfileCommon ne fonctionne pas car il s'agit d'une classe Profile créée dynamiquement qui n'aura pas d'informations de profil pour l'utilisateur actuel (y compris les propriétés de profil telles que UserName). – AndyG