2009-10-20 7 views
3

je les deux propriétés de profil dans mon fichier web.config entre les balises System.Web suivantes:Impossible d'accéder aux propriétés de profil personnalisées à partir de web.config?

<anonymousIdentification enabled="true"/> 
<profile> 
    <properties> 
    <add name="CustomerName" allowAnonymous="true"/> 
    <add name="CustomerID" allowAnonymous="true"/> 
    </properties> 
</profile> 

Lorsque je tente d'accéder au Profile.CustomerName ou Profile.CustomerID à partir d'un fichier aspx.cs, il n'apparaît pas. Je pensais que lorsque vous créez une propriété de profil personnalisée, elle met automatiquement à jour le aspnetdb avec les nouvelles propriétés. Le profil n'apparaît pas dans intellisense aussi bien.

+0

Vérifiez ma réponse ci-dessous –

Répondre

2

Ce problème se produit si vous créez une application Web. Les applications Web, contrairement aux sites Web, ne génèrent pas la classe ProfileCommon. Vous pouvez soit suivre cette méthode: http://webproject.scottgu.com/CSharp/Migration2/Migration2.aspx (Annexe 2)

Je n'ai pas personnellement utilisé l'assemblée ci-dessus, de sorte que quelqu'un d'autre pourrait donner quelques conseils à ce sujet. Cependant, vous pouvez également essayer:

Object customerName = HttpContext.Current.Profile.GetPropertyValue("CustomerName") 

Vous n'obtiendrez IntelliSense avec cette méthode, mais aussi longtemps que vous connaissez le nom de la propriété, il est accessible comme ça.

+0

au lieu d'hériter ProfileBase et la création propre classe, je suppose que la méthode que vous aviez prévu est le moyen le plus simple. Vous définissez également la valeur de la propriété à l'aide de - HttpContext.Current.Profile.SetPropertyValue ("CustomerName", "MyCustomer") –

0

propriétés dans le fichier Spécifiez web.config comme suit: - ProfilePropertyWeb.config

Maintenant, écrire le code suivant: -

Code Behind Profile Properties

compiler et exécuter le code. Vous obtiendrez sortie suivante: -

Output

Questions connexes