lundi 13 février 2012

Visual Source Safe (VSS) : "Impossible de trouver le fichier SS.INI pour l'utilisateur..."

Voici un problème que vous pouvez rencontrer (pour ma part cela fait 2 fois) avec Visual Source Safe 2005 et Visual Studio 2010. Au lancement de ce dernier, lors du chargement de votre projet, vous obtenez le message suivant :
Impossible de trouvere le fichier SS.ini pour l'utilisateur ...

Surtout pas de panique, comme l'indique ce message, il manque un fichier maintenant reste à savoir où ce fichier doit se trouver.

Et bien voilà la réponse...

Ce problème est tout d'abord un problème sur votre serveur VSS. Il vous faut donc identifier le répertoire de votre projet sur votre serveur VSS, à partir de là vous devez rechercher le répertoire "users" puis le nom de l'utilisateur pour lequel le problème a été levé. Et vous constaterez qu'aucun fichier SS.ini ne se trouve dans ce répertoire. Pour corriger le problème, vous n'avez qu'à récupérer un fichier SS.ini se trouvant dans le répertoire d'un autre utilisateur.

Vous pouvez modifier le contenu de ce fichier pour personnaliser votre VSS, moi personnellement je n'ai pas eu à le faire...

lundi 6 février 2012

Activation du multilangue sur un site DNN 6

Une fois l'installation de votre site DNN 6 effectuée, l'activation du mode multilangue n'est pas forcément des plus simple. En effet deux étapes doivent être effectuée :

  • Activation du mode multilangue au niveau du Host
  • Activation du mode multilangue au niveau du Site
Première étape : activation du mode multilangue au niveau du host :

Pour activer le mode multilangue, vous devez autorisez la traduction des contenus. Cette option se trouve dans le paramétrage du Host dans les "Autres paramètres", option "Autorisez la traduction des contenus".


Seconde étape : activation du mode multilangue au niveau du site :

Pour activer le mode multilangue, après avoir défini la langue par défaut du site (attention, vous ne pourrez plus revenir sur cette option après l'activation), il faut se placer sur la page des langues du site et cliquer sur le lien "Activer le multilinguisme" (duplication des pages à traduire).



dimanche 15 août 2010

DNN : Comment modifier le mot de passe d'un utilisateur

Dans un précédent billet je décrivais comment récupérer le mot de passe d'un utilisateur, et bien là j'en suis à vouloir le modifier. Là encore il y a une petite astuce.

Il faut dans un premier temps récupérer les informations de l'utilisateur sur lequel on souhaite travailler :

Imports Imports DotNetNuke.Entities
...
dim oUserInfo as Users.UserInfo 
'Récupération des informations de l'utilisateur à partir du "user name"
oUserInfo = Users.UserController.GetUserByName(iPortalId, sUserName)
'Récupération des informations relatives au membership de cet utilisateur
Users.UserController.GetUserMembership(oUserInfo)

On note ici la récupération du "membership" de l'utilisateur. Ces informations sont nécessaires car nous allons devoir récupérer l'ancien mot de passe et cela n'est pas possible sans la propriété "PasswordAnswer" :

'Récupération de l'ancien mot de passe 
dim sOldPassword as string = Users.UserController.GetPassword(oUserInfo, oUserInfo.Membership.PasswordAnswer)

Il ne reste plus qu'à modifier l'ancien mot de passe ainsi :

'Modification du mot de passe
Users.UserController.ChangePassword(oUserInfo, sOldPassword, sNewPassword)

jeudi 5 août 2010

VS 2010 : Comment se placer sur le fichier en cours d'édition

Lorsque je suis passé sous Visual Studio 2010, j'ai rapidement été assez agacé par la perte d'une petite fonctionnalité qui était fort pratique : le fait qu'un fichier édité soit automatiquement sélectionné dans l'explorateur de solution.

Cette fonctionnalité est pratique notamment lorsque l'on a un nombre conséquent de fichiers en cours d'édition et que l'on souhaite accéder au fichier .aspx du fichier codebehind que l'on est train d'éditer.

Il est heureusement possible d'activer cette fonctionnalité à partir des options de VS, vous la trouverez en passant par le menu "Options", puis la section "Projets et solutions", puis "Général" et là vous avez une petite case à cocher "Suivre un élément actif dans l'explorateur de solutions"

samedi 31 juillet 2010

DNN : Comment modifier le "username" d'un utilisateur

DNN vous offre les méthodes pour modifier toutes les propriétés d'un utilisateur sauf une : le username. Pour se faire vous êtes donc condamnés à modifier directement en base cette propriété mais attention, celle-ci ne se trouve pas que dans une table.

Voici les tables et les champs devant être impactées pour que la modification de la propriété soit efficace :

  • Table "Users", champ "UserName"
  • Table "aspnet_Users", champ "UserName" ET "LoweredUserName"
Pour être un peu plus complet, voici une petite fonction mettant à jour ces différentes tables :

       Public Sub UpdateUserName(ByVal NewUserName As String, ByVal OldUserName As String)
            Dim oConnexion As SqlConnection = New SqlConnection(_connectionString)
            oConnexion.Open()
            Dim sSQL As String
            sSQL = "update users set username=@NewUserName where username=@OldUserName"
            Dim oCommand As SqlCommand = New SqlCommand(sSQL, oConnexion)
            oCommand.Parameters.AddWithValue("@NewUserName", NewUserName)
            oCommand.Parameters.AddWithValue("@OldUserName", OldUserName)
            oCommand.ExecuteNonQuery()
            sSQL = "update aspnet_Users set username=@NewUserName ,loweredusername=@NewUserName where username=@OldUserName"
            oCommand = New SqlCommand(sSQL, oConnexion)
            oCommand.Parameters.AddWithValue("@NewUserName", NewUserName)
            oCommand.Parameters.AddWithValue("@OldUserName", OldUserName)
            oCommand.ExecuteNonQuery()
            oConnexion.Close()
        End Sub

Vous remarquerez la variable "_connectionString", vous penserez bien à la valoriser et puis vérifiez que votre table "User" n'est pas préfixée (cela est possible si la propriété "objectQualifier" dans votre web.config a été valorisé à l'installation de votre DNN). Le but de cette fonction n'est pas de couvrir tous les besoins mais juste de vous donner une piste.

mardi 20 juillet 2010

SQL Server : Ramener sur une seule ligne les informations provenant de plusieurs lignes

J'avais déjà été confronter à ce petit soucis il y a quelque mois, j'ai dû me replonger dans mes souvenirs pour ressortir la solution à ce problème.

Voici le besoin (ce n'est pas mon besoin, c'est un cas d'école) : je souhaite afficher sur une seule ligne le nom des 10 premiers utilisateurs présent dans ma base. Comment faire cela en une seule requête SQL sans rien de plus ?

Petite précision qui a son importance, je suis sous SQL Server Express 2008, cette syntaxe fonctionne pour la version 2005 mais antérieure à cela... rien n'est moins sûr.

Voici la syntaxe "magique" :

SELECT TOP 10 UserName + ' ' FROM Users FOR XML PATH('')

Et nous voilà donc avec les noms des 10 premiers utilisateurs sur une seule ligne (et une seule colonne) séparés par un espace (attention un espace se trouve à la fin de la ligne).

lundi 19 juillet 2010

Problème d'affichage de texte lors d'un upload d'image dans le module "Text/HTML" (RadEditor) de DNN

Voici un problème auquel j'ai été confronté et pour lequel je n'ai trouvé aucune information sur le net. Deux possibilités pouvant expliquer cela :
  • je n'ai pas utilisé les bons termes de recherche dans google,
  • personne n'a le problème.
Aucun où quelqu'un d'autre tomberait sur ce soucis, en voici les symptômes, lorsque j'édite le contenu d'un module "Text/HTML", j'utilise le composant RadEditor de Telerik. Il se trouve que toutes les fenêtres filles que j'ouvre à partir de ce composant sont sans texte. 

Exemple : La fenêtre permettant d'insérer une image


Aucun texte n'est visible sur les onglets, les boutons,...

Pour remédier à cela il faut placer dans le dossier "Providers\HtmlEditorProviders\Telerik\App_LocalResources" de votre instance DNN les fichiers ressources français de Telerik, en voici la liste :
  • RadEditor.Dialogs.fr-FR.resx
  • RadEditor.Main.fr-FR.resx
  • RadEditor.Modules.fr-FR.resx
  • RadEditor.Tools.fr-FR.resx
Voici le même fenêtre que ci-dessus après avoir rajouté les fichiers listés :



Suite aux différents commentaires échangés sur le sujet, voici un petit rajout : pour que tout fonctionne correctement il faut aussi modifier le fichier "SharedResources.fr-FR.resx" se trouvant dans le répertoire "App_GlobalResources" de DNN. La clef à modifier est "PortalRoot.Text", il faut lui affecter la valeur d'origine qui est "Portal Root". Cette modification est essentielle.