2011-04-06 3 views
0

Technology ASP.NET, VB.NET 2.0 (bientôt 4,0)ASP.NET VB.NET Configuration Portal Connexion à distance

Vue d'ensemble J'écris un login/Portal authentification, afin qu'une application Web peut l'utiliser pour se connecter à un utilisateur, puis utiliser l'application en utilisant ses informations d'identification. Le portail de connexion sera une application distincte, et initialement uniquement disponible via un extranet ainsi que l'intranet pour certaines applications; mais les applications futures devront s'authentifier via le Web (heureux de l'implémenter en tant qu'instance distincte). Je veux essentiellement que d'autres applications individuelles puissent authentifier les utilisateurs via ce portail.

Alors que ...

  1. Un utilisateur va à l'URL Web d'une application (par exemple www.application.com/http://apps/application - intranet) et clique sur "login".
  2. navigateur de l'utilisateur est redirigé vers l'application de portail, avec une requête chaîne www.loginportal.com/login.aspx?url=www.application.com/login.aspx (ou une autre page).
  3. L'utilisateur remplit ses informations d'identification (nom d'utilisateur, mot de passe) et clique sur le bouton "Connexion".
  4. Le navigateur redirige vers l'URL, à savoir www.applications.com/default.aspx ou login.aspx et est authentifié et connecté. et peut utiliser l'application.

Achevé Je l'authentification elle-même triés, et mettrons en place une bibliothèque de classes dans les applications locales via une dll.

Besoin donc j'ai besoin essentiellement de savoir, comment: - 1. Les données post à l'URL du portail (pourrait être différent domaine). 2. Rediriger le navigateur avec le message. 3. Assurez-vous que l'authentification est sécurisée et qu'elle n'est pas facilement piratable (je sais comment utiliser urlencode et htmlencode, etc.). Je ne suis pas sûr des implications de la publication de données sur plusieurs domaines.

Toute aide grandement appréciée ...

Cheers, Duncan.

Répondre

0

Des choses vraiment difficiles, ici. Si c'était moi, je m'appuierais fortement sur Windows Identity Foundation. Je crois qu'il peut soutenir ce scénario (ne l'a pas fait réellement, quelqu'un d'autre dans mon entreprise se développe contre cela).

0

OK, donc c'est la solution que je fini par utiliser:

Dans l'application d'origine (celui qui a besoin de l'authentification, l'étape 1 ci-dessus) rediriger l'utilisateur à mon portail de connexion, et inclure l'URL d'origine en tant que paramètre get. L'utilisateur tape ensuite ses coordonnées, son nom d'utilisateur et son mot de passe.Ensuite, le code côté serveur les authentifie et redirige vers une nouvelle page, où je renvoie à la page un formulaire html qui inclut la date et l'heure de la demande (pour la sécurité) ainsi qu'une chaîne cryptée (y compris la date de la demande) des données que je veux renvoyer au formulaire original.

J'ajoute également une méthode de publication JavaScript qui envoie les données à l'URL d'origine sous la forme d'un message. Comme j'utilise la même bibliothèque de classes aux deux extrémités, je peux chiffrer et déchiffrer les données en utilisant la même méthode et l'application demandeuse d'origine a toutes les données utilisateur, y compris la possibilité de vérifier la date de la requête (j'autorise un ensemble quantité de temps entre l'authentification et la cueillette par l'application d'origine, en vous assurant ce sont à dire 5 minutes.

et travail.

Si quelqu'un veut le code, je peux fournir, juste don » Je ne l'ai pas avec moi en ce moment, si je me souviens je le posterai

Pas la solution la plus élégante, mais cela fonctionne, et il est sécurisé, donc je suis heureux :).