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
Répondre
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");
}
}
Merci! C'est ce dont j'avais besoin! – Kevin
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.
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.
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 –
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? –