0

Bonjour, il y a un problème dans ma page de connexion.
Le scénario est,
Par exemple, je vais sur www.mydomain.com/admin/ sa redirection vers la page de connexion avec le paramètre ReturnURL comme ceci. www.mondomaine.com/login.aspx?ReturnURL=%2fAdmin%2f.
Je me connecte avec un compte admin et tout fonctionne bien.
Mais si je vais directement à Login.aspx, cela signifie qu'il n'y a pas de champ ReturnURL QueryString.
Je me connecte avec le même compte admin mais quand j'essaye d'aller sur www.mydomain.com/admin/ après m'être connecté, il me redirige vers la page de connexion.
Authentification ASP.Net si ReturnURL null UserData est vide

Je suis en train de naviguer comme ça. Qu'est-ce que je manque?

//The code block that is logging in admin. 
//check if there is a ReturnURL 
if (QueryStringTool.IsExistAndNotNull("ReturnURL")) 
{ 
    Session["UserType"] = UserTypes.UserType.Admin; 
    Response.Redirect(FormsAuthentication.GetRedirectUrl(txtUserName.Text.Trim(), false)); 
} 
//ReturnURL doesn't exists. 
else 
{ 
    FormsAuthentication.SetAuthCookie(txtUserName.Text, cbUserRememberMe.Checked); 
    Response.Redirect("/Admin/Default.aspx"); 
} 

Répondre

1

Maintenant, essayez ceci. Remplacez votre code

//check if there is a ReturnURL 

    if (QueryStringTool.IsExistAndNotNull("ReturnURL")) 
    { 
     Session["UserType"] = UserTypes.UserType.Admin; 
     Response.Redirect(FormsAuthentication.GetRedirectUrl(txtUserName.Text.Trim(), false)); 
    } 
    //ReturnURL doesn't exists. 
    else 
    { 
     FormsAuthentication.SetAuthCookie(txtUserName.Text, cbUserRememberMe.Checked); 
     Response.Redirect("/Admin/Default.aspx"); 
    } 

avec celui-ci

if("Check if User Is Authentic") 
{ 
Session["UserType"] = UserTypes.UserType.Admin; 
FormsAuthentication.RedirectFromLoginPage(txtUserName.Text, cbUserRememberMe.Checked); 
} 

Cela fonctionne pour votre code entier. Redirige un utilisateur authentifié vers l'URL initialement demandée ou l'URL par défaut.
Vérifiez sur la page DefaultLoad événement Session["UserType"] si l'utilisateur est Admin puis le rediriger à la page d'administration

+0

Merci beaucoup de son travail en ce moment. –

+0

@ Ümit Akkaya: Vous êtes BIENVENUE. – jams

1

Ceci est un exemple web.config

<configuration> 
    <system.web> 
    <authentication mode="Forms"> 
     <forms 
     name="401kApp" 
     loginUrl="/login.aspx" 
     cookieless="AutoDetect" 
     defaultUrl="myCustomLogin.aspx"> 
     <credentials passwordFormat = "SHA1"> 
     <user name="UserName" 
     password="07B7F3EE06F278DB966BE960E7CBBD103DF30CA6"/> 
     </credentials> 
     </forms> 
    </authentication> 
    </system.web> 
</configuration><br/> 

mis defaultUrl="yourdefaultpageURL" dans web.config
OU
vous pouvez utiliser FormsAuthentication.RedirectFromLoginPage Method (String, Boolean)

+0

réponse informative, mais malheureusement ce ne est pas travaillé pour moi. –

+0

@ Ümit Akkaya: Parce que votre code dit que s'il n'y a pas 'ReturnURL' goto' ~/'cela signifie' Login'page. – jams

+0

@ Ümit Akkaya: J'ai mis à jour ma réponse. – jams

Questions connexes