2009-11-10 3 views
0

Im actuellement en essayant de mettre en œuvre un fournisseur de profil pour mon site quelques jours maintenant et ayant du mal à travailler dessus, im un programmeur php et je viens de passer à asp.net récemmenten utilisant le fournisseur de profil personnalisé dans ASP.net MVC?

Im utilisant Linq pour sql et suivre ce tutoriel http://www.codeproject.com/KB/aspnet/LINQCustomProfileProvider.aspx.

la raison que j'utilise le mien parce que j'ai une structure différente de celle par défaut d'asp.net. Les données de profil sont dans ma table utilisateur.

La compilation était bien, la connexion s'est bien passée.

mais j'ai essayé

<% CMSProfile profile = HttpContext.Current.Profile as CMSProfile;%> 
<%= profile.NickName %> 

il ne fonctionnera pas et me jeter un System.NullReferenceException ... alors comment puis-je obtenir automatiquement mon profil dans le HttpContext afin que je puisse appeler facilement à chaque fois.

Si vous avez besoin de plus de données, je peux fournir.

Merci beaucoup.

Web.config:

<roleManager enabled="false" defaultProvider="CMSRoleProvider"> 
    <providers> 
    <clear /> 
    <add name="CMSRoleProvider" type="P014.ProviderClass.CMSRoleProvider" connectionStringName="P014ConnectionString" applicationName="/" /> 
    </providers> 
</roleManager> 

Répondre

2

Comment avez-vous enregistré le fournisseur dans web.config? Vous ne devriez pas avoir à instancier le fournisseur vous-même, cela devrait être fait par l'application au démarrage. Si vous donnez plus d'informations, je pourrais être en mesure d'aider.

EDIT: Voici mon web.config, ce sera peut-être utile.

<profile defaultProvider="SWIntranetProfile" enabled="true"> 
    <providers> 
     <clear/> 
     <add name="SWIntranetProfile" type="SWIntranetProfile"/> 
    </providers> 
    <properties> 
     <clear/> 
     <!-- SID is really LOGON_USER --> 
     <add name="SID" allowAnonymous="false" type="System.String" readOnly="true"/> 
     <add name="PersonID" allowAnonymous="false" type="System.Int32" readOnly="true"/> 
     <add name="EmailAddress" allowAnonymous="false" type="System.String" readOnly="true"/> 
     <add name="Position" allowAnonymous="false" type="System.String" readOnly="true"/> 
     <add name="Name" allowAnonymous="false" type="System.String" readOnly="true"/> 
     <add name="FirstName" allowAnonymous="false" type="System.String" readOnly="true"/> 
     <add name="LastName" allowAnonymous="false" type="System.String" readOnly="true"/> 
     <add name="ImageName" allowAnonymous="false" type="System.String" readOnly="true"/> 
     <add name="PhoneExt" allowAnonymous="false" type="System.String" readOnly="true"/> 
     <add name="LastIP" allowAnonymous="false" type="System.String" readOnly="false"/> 
     <add name="IntranetTheme" allowAnonymous="false" type="System.String" readOnly="false"/> 
     <add name="UnionID" allowAnonymous="false" type="System.Int32" readOnly="true"/> 
     <add name="UnionName" allowAnonymous="false" type="System.String" readOnly="true"/> 
     <add name="OfficeID" allowAnonymous="false" type="System.Int32" readOnly="true"/> 
    </properties> 
</profile> 
+0

J'ai ajouté le fichier web.config à mon message. pouvez-vous s'il vous plaît vérifier – DucDigital

1

je remarquai que l'auteur de l'article n'a pas donné un exemple de code pour lier le profileur ou Workflow pour HttpContext.

Avez-vous écrit votre propre classe pour ce faire? Si oui, l'avez-vous configuré correctement dans le fichier web.config?

Si vous utilisez IIS7, vous devez également enregistrer votre IHttpModule dans la section webServer du fichier web.config.

EDIT

Pour pouvoir exécuter le code extrait de code que vous avez à vous montrent besoin d'avoir placé votre profileur personnalisé au HttpContext.

Vous pouvez le faire de deux manières, soit sur demande ou au démarrage de l'application.

Pour la base par requête, vous devez créer une classe qui implémente IHttpModule et l'enregistrer dans le fichier web.config. Pour le démarrage de l'application, vous devez joindre votre CMSProfile à HttpContext.Current dans la méthode Application_OnStart.

Leur est un exemple d'application joint à l'article que vous avez posté, avez-vous téléchargé et vérifié l'application d'échantillon?

+0

je ne pense pas que c'est le cas parce que l'enregistrement et la connexion fonctionnent très bien. – DucDigital

+0

Comment lier le CMSProfile au HttpContext? –

+0

Je ne sais pas, je pense que je n'ai pas à le faire. – DucDigital

Questions connexes