3

Je lance la dernière version de YetAnotherForum dans un dossier situé sous ma principale WebApplication. Le sous-dossier est configuré en tant qu'application dans IIS et la navigation vers le dossier et la connexion fonctionne à merveille. YAF est configuré avec un fournisseur d'appartenance et utilise l'authentification par formulaire.Connexion automatique à une autre application ASP.NET à partir de l'application Web principale

Ce que j'essaie de faire maintenant est de se connecter automatiquement un utilisateur dans le forum à partir du site Web principal. Le site principal utilise une authentification personnalisée via des sessions et des cookies. Il n'utilise aucun des composants d'authentification ou d'appartenance ASP.NET intégrés. Donc, fondamentalement, ce que je veux faire, c'est que lorsqu'un utilisateur clique sur un lien pour accéder aux forums, il les envoie à une page de traitement qui les authentifie dans l'application YAF avant de les envoyer au sous-dossier.

Même si l'application principale n'utilise pas les pièces d'authentification intégrées, j'ai toujours défini le mode d'authentification sur les formulaires et j'ai vérifié que la balise sous-jacente correspond à celle du fichier web.config YAF. Ensuite, sur la page de traitement, j'appelle FormsAuthentication.SetAuthCookie (nom d'utilisateur, true), puis redirige. Mais YAF me renvoie à la page de connexion de toute façon. Je ne sais pas où aller d'ici.

Site principal est: example.com/

web.config:

<authentication mode="Forms"> 
    <forms name=".YAFNET_Authentication" protection="All" timeout="43200" cookieless="UseCookies" /> 
</authentication> 

YAF est: example.com/yaf (Separate WebApplication dans IIS)

web.config

<authentication mode="Forms"> 
    <forms name=".YAFNET_Authentication" protection="All" timeout="43200" cookieless="UseCookies" /> 
</authentication> 

La page de traitement est: (en pseudo) example.com/autoLogin.aspx.cs

public void AutLogin(){ 
    string userName = doStuffToGetUsername(); 
    YAFStuff.CreateUserIfNeeeded(userName); 

    FormsAuthentication.SetAuthCookie(userName, true); 
    Response.Redirect("/yaf/"); 
} 

Répondre

Questions connexes