Bonjour,
DotNetNuke contient un provider de profil extensible, accessible depuis Site > Utilisateurs > Propriétés de profil. Avec ce contrôle, tu peux étendre les informations demandées lors de l'inscription, et ajouter, par exemple, des champs de liste. Cela te permet d'avoir un contrôle complet sur les infos qui pourraient être utiles pour qualifier l'utilisateurs. Cependant, cela reste stocké sur la même base que DotNetNuke, et si c'est la raison pour laquelles tu attaques la création d'utilisateur programmatiquement, alors procède comme suit :
Avant toute chose, tu peux regarder comment c'est fait dans User.ascx.vb et t'en inspirer.
D'après ce que j'ai compris, tu cherches à mettre à jour un utilisateur qui existe. Pour cela, tu dois récupérer un UserID quelque part. Soit depuis une valeur Bindée - sur une liste par exemple (avec Me.list.SelectedValue.Value), soit depuis le contexte avec Me.UserID (Dans ce dernier cas, tu édites le profil de l'utilisateur courant uniquement.). Avec cette donnée (Integer), tu peux récupérer le UserInfo tel qu'il est dans la base, par exemple comme cela :
Note : Je suppose que le nom d'utilisateur est une variable connue d'ailleurs ; dans ton code plus haut, une exception Null aurait dû surgir puisque UserInfo.UserName ne mène à rien (on vient de faire un New et le champ est vide car aucune valeur n'est par défaut.)
Private Sub GoGetIt(ByVal intUserId As Integer, ByVal sUserName As String, ByVal sPrenom As String, ByVal sNom As String)
If Not intUserId = Null.NullInteger Then ' Different de -1
Dim objUser As UserInfo = UserController.GetUser(Me.PortalId, intUserId, False)
If Not objUser Is Nothing Then
objUser.PortalID = Me.PortalId
objUser.Username = sUsername
objUser.DisplayName = sPrenom & " " & sNom
UserController.UpdateUser(Me.PortalId, objUser)
Else
' si on a un UserId valide cela ne devrait pas arriver
' mais si l'UserId est confondu avec un autre système opérant, alors on crée un utilisateur
' sinon, on fera un
Dim boolSuccess As Boolean = False
objUser = New UserInfo
objUser.DisplayName = sPrenom & " " & sNom
' ...
boolSuccess = UserController.CreateUser(objUser)
If Not boolSuccess Then
DotNetNuke.UI.Skins.Skin.AddModuleMessage(Me, "L'utilisateur n'a pas ete cree", ModuleMessage.ModuleMessageType.RedError)
End If
End If
End If
End Sub
Pour mettre à jour une propriété de profil personnalisé programmatiquement c'est un peu plus compliqué. Si c'est ce que tu veux faire, fait le savoir.
Seb