2

Si vous développez plusieurs modules sur une page Web affichant différentes choses telles que du contenu comme un bio ou des images basées sur un userId passé par la chaîne de requête. Au chargement de la page, tous les modules de la page Web doivent agir de manière indépendante et regarder individuellement la chaîne de requête, puis renvoyer le contenu en fonction de l'ID utilisateur.Simple question sur le développement du module DotNetNuke

Et de la même manière, les modules doivent-ils vérifier individuellement si l'utilisateur correct est connecté avant de pouvoir modifier le contenu?

J'ai déjà fait un ou deux modules pour un site web mais c'est la première fois que je développe un site web DotNetNuke et je ne sais pas si c'est le seul moyen.

Répondre

2

Chaque module doit fonctionner indépendamment des autres.

En outre, je ne pense pas que vous devriez regarder la chaîne de requête pour obtenir votre identifiant d'utilisateur, car cela peut être usurpé. Au lieu de cela, regardez la classe de base de votre module pour voir s'il y a une propriété contenant les informations de l'utilisateur.

6

Votre contrôle utilisateur doit déjà hériter de DotNetNuke.Entities.Modules.PortalModuleBase. Si tel est le cas, vous pouvez utiliser la propriété this.UserInfo.UserID pour récupérer l'ID de l'utilisateur. Ce sera beaucoup plus sûr que de regarder la chaîne de requête. Rappelez-vous que l'utilisateur n'est peut-être pas connecté, et dans ce cas, la référence ci-dessus entraînera une référence nulle. Assurez-vous donc de tester null en premier.

En outre, sur une note quelque peu liée, vous pouvez utiliser this.UserInfo.IsInRole("RoleName") pour tester si un utilisateur particulier est dans un rôle donné.

+0

Merci pour l'aide supplémentaire – shad