2010-11-13 36 views
1

Ok, j'ai une page default.aspx que j'essaye d'avoir rediriger l'utilisateur vers une page différente selon que leur deviceId est ou non stocké dans la base de données SQL Server. Il doit diriger l'utilisateur vers le fichier login.aspx si l'enregistrement de l'utilisateur est trouvé ou vers la page newdevice.aspx s'il n'y a aucun enregistrement trouvé. Je veux que cela se produise sur Page_Load mais n'ai pas été capable de le comprendre jusqu'ici.Redirection de page sur Page_Load IF Record Exists

+0

Qu'entendez-vous par identifiant de périphérique? Parlez-vous d'un appareil mobile? Parlez-vous d'un identifiant de périphérique qui identifie de manière unique chaque téléphone portable ou souhaitez-vous obtenir le numéro de modèle ou quelque chose de similaire? Dans quelle partie êtes-vous coincé? Comment l'identifiant de l'appareil est-il stocké dans la base de données avant? –

Répondre

2

Telle est l'idée de base sur la façon de le faire :)

Sub Page_Load() 
{ 

//Acquire the User ID or email etc which can uniquely identify the user 

SqlCommand cmd = new SqlCommand("SELECT COUNT(deviceId) from DeviceIDTable WHERE UserID=UserID",con); 

if (cmd.ExecuteScalar().ToString() != "1") 
{ 
    Response.Redirect("newdevice.aspx"); 
} 
else 
{ 
    Response.Redirect("login.aspx"); 
} 

} 
+0

Merci! C'est ce dont j'avais besoin! – Kevin

0

Peut-être que je manque ce que vous cherchez exactement, mais pour rediriger une page que vous pouvez invoquer Response.Redirect comme suit:

Protected Overrides Sub OnLoad(ByVal e As System.EventArgs) 
    MyBase.OnLoad(e) 

    //Processing to figure out if deciveId is stored in database 

    If deviceIdFound Then 
     Response.Redirect("newdevice.aspx") 
    Else 
     Response.Redirect("login.aspx") 
    End If 
    End Sub 

Si la question est en fait liée à FormsAuthentication ou somthing autre en ce qui concerne la recherche Sql base de données etc s'il vous plaît clarifier.

0

Vous avez deux options principales pour gérer cette situation. Vous pouvez utiliser Response.Redirect ou Server.Transfer.

Nous vous recommandons d'utiliser Server.Transfer pour les redirections internes et Response.Redirect pour les redirections externes comme Server.Transfer leads to a lighter server load and fits the ASP.NET work flow better. Server.Transfer ne peut pas transférer vers des pages externes et, en tant que tel, n'est pas utile pour les transferts en dehors de la même application.

Vous pouvez utiliser Server.Transfer avec un bloc de code similaire à ci-dessous:

If User.IsValid = False Then 
Server.Transfer("~/Login.aspx") 
End If 

Si vous devez utiliser Response.Redirect à la place, il serait utilisable avec un bloc de code similaire à ci-dessous:

If User.IsValid = False Then 
Response.Redirect("~/Login.aspx",True) 
End If 

Le paramètre True indique à l'environnement d'exécution ASP.NET de mettre fin au traitement de la page en cours et d'envoyer la redirection immédiatement.

+0

Je ne pouvais pas citer une autre source dans le même post en raison d'être un nouvel utilisateur, donc je vais le poster ici. Un peu plus d'informations sur la différence entre Server.Transfer et Response.Redirect. http://www.developer.com/net/asp/article.php/3299641/ServerTransfer-Vs-ResponseRedirect.htm –