Vous êtes ici Forums
  |  Connexion
 Forums
HomeHomeForums DNNForums DNNDéveloppementDéveloppementConnexion entre 2 sites.Connexion entre 2 sites.
Précédente
 
Suivante
Nouveau message
20/03/2007 10:55
 

Bonjour,

J'ai 2 sites, un en .net 2.0 et un en DNN. Ils ne sont pas sur le même domaine mais j'ai synchroniser les utilisateurs. (tout utilisateur créé sur le premier site se cree ou se mets a jour sur le deuxième).

Je voudrais maintenant que lorsqu'un utilisateur se connecte sur le premier site, et qu'il se dirige vers le deuxième la session reste. Etant donné que le domaine est différent, impossible de passer un cookies.

Il existe un module SSO pour DNN:
ttp://opensource.indyneinc.com/home/DevX/Articles/SingleSignOn/tabid/99/Default.aspx

Peut il etre utile pour mon cas?

Sinon j'ai pensé à passer en paramètre le login de l'utilisateur au site DNN lorsque que l'on vient du premier, quel(s) fichier(s) sont alors impacter ou rajouter le test si le paramètre de login est présent et que la session sur DNN se crée correctement.

Merci d'avance

 

 
Nouveau message
20/03/2007 12:09
 

Bonjour Julien,

Je viens d'aller voir le module SSO, il a l'air très bien. En revanche, il ne correspondra peut-être pas à ton problème. Vu qu'il utilise une base annexe pour centraliser les comptes. Mais l'idée générale est bonne et il pourrait servir de base.

Dans ton cas, une solution serait de commencer comme SSO par modifier les pages de login. Pour passer d'un site à l'autre, tu pourrais effectivement passer les paramètres de connexion, mais il faudrait les encrypter. Tu aurais alors une page de connexion sans interface qui lirait les paramètres puis ferait une redirection sur la page visée.

Gilles

 
Nouveau message
20/03/2007 12:56
 

oki merci de ta réponse, je vais donc voir avec ce module la.

Par contre je n'arrive pas à m'inscrire sur ce site, cela ne m'envoie pas de mail de confirmation, et je ne peut donc pas télécharger le module, ou pourrais je le trouver?

 

 
Nouveau message
20/03/2007 13:12
 

Je viens de m'inscrire aussi, il faut attendre un peu car le temps d'envoie de l'email dépend de son serveur smtp. Cela peut prendre parfois plus d'une heure. Le premier des deux qui aura son email previent l'autre.

A+, Gilles

 
Nouveau message
20/03/2007 13:55
 

oki merci :)

moi sa fait 4 heures que je l'attends lol.
Jen profite, le mot de passe des utilisateurs est stocké ou en base?

 
Nouveau message
20/03/2007 17:20
 

Re,

Toujours rien non plus de mon côté, je vais peut-être leur faire un email si je n'ai rien ce soir.

Pour les mots de passe, par défaut dnn utilise maintenant le système de compte asp.net sur sql server. C'est la ligne suivante dans ton fichier web.config :

    <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="SiteSqlServer" enablePasswordRetrieval="true" enablePasswordReset="true" requiresQuestionAndAnswer="false" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="0" requiresUniqueEmail="false" passwordFormat="Encrypted" applicationName="DotNetNuke" description="Stores and retrieves membership data from the local Microsoft SQL Server database"/>

Les mots de passe se trouvent dans la table aspnet_Membership, mais ils sont encryptés par défaut !

Gilles

 
Nouveau message
21/03/2007 16:02
 
merci de ta réponse. J'ai ajouté l'insertion dans les tables par défaut mais il me reste à trouvé ou on active l'utilisateur automatiquement, car la il me dit que mes utilisateurs créés n'ont pas le droit de se connecter.
 
Nouveau message
22/03/2007 00:05
 

Bonjour,

Toujours pas de réponse et j'ai laissé un message hier soir sur le site.

Comment as-tu ajouté les utilisateurs ? Sont-ils dans le groupe Registred Users ?

Gilles

 
Nouveau message
22/03/2007 13:33
 

Bonjour,

Ok pour le message, dis moi quand ils t'auront répondus.

Sinon je n'avais pas inséré dans la table UsersRoles, mais cela ne passe toujours pas, je vais continuer de chercher un flag ou autre.

Sinon pour crypter le mot de passe de l'utilisateur, j'ai utilisé cette fonction, mais a priori ce n'est pas la bonne?

 

private String Encrypt(String strKey ,String strData )
{

String strValue = "";

try

{

if (strKey != "" )

{

// convert key to 16 characters for simplicity

if((strKey.Length) < 16)

{

string cleftemp = "XXXXXXXXXXXXXXXX";

strKey = cleftemp.Substring(0,16 - (strKey.Length));

}

else

{

strKey = strKey.Substring(0, 16);

}

// create encryption keys

Byte[] byteKey = Encoding.UTF8.GetBytes(strKey.Substring(0, 8));

Byte[] byteVector = Encoding.UTF8.GetBytes(strKey.Substring(strKey.Length - 8));

// convert data to byte array

Byte[] byteData = Encoding.UTF8.GetBytes(strData);

// encrypt

DESCryptoServiceProvider objDES = new DESCryptoServiceProvider();

MemoryStream objMemoryStream = new MemoryStream();

CryptoStream objCryptoStream = new CryptoStream(objMemoryStream, objDES.CreateEncryptor(byteKey, byteVector), CryptoStreamMode.Write);

objCryptoStream.Write(byteData, 0, byteData.Length);

objCryptoStream.FlushFinalBlock();

//convert to string and Base64 encode

strValue = Convert.ToBase64String(objMemoryStream.ToArray());

}

else

{

strValue = strData;

}

}

catch (Exception e)

{

throw new PhoxException("bError while encrypting password", e);

}

return strValue;

}

Que j'ai appelé comme ceci:

skey = CreateKey(16);

spasswordtemp = Encrypt(skey, pUser.Password);

Byte[] texteBytes = Encoding.ASCII.GetBytes(skey);

skey = Convert.ToBase64String(texteBytes);

La fonction createkey je l'ai également récupéré de DNN.

Est ce la bonne methode?

Merci d'avance

 
Précédente
 
Suivante
HomeHomeForums DNNForums DNNDéveloppementDéveloppementConnexion entre 2 sites.Connexion entre 2 sites.