2010-11-13 3 views
1

Хорошо, у меня есть страница default.aspx, которую я пытаюсь перенаправить пользователя на другую страницу в зависимости от того, хранится ли их deviceId в базе данных SQL Server. Он должен направить пользователя на login.aspx, если запись для пользователя будет найдена или на страницу newdevice.aspx, если запись не найдена. Я хочу, чтобы это произошло на странице_Load, но пока не удалось понять это.Страница Переадресация на странице_Load IF Запись существует

+0

Что вы подразумеваете под идентификатором устройства? Вы говорите о мобильном устройстве? Вы говорите об идентификаторе устройства, который однозначно идентифицирует каждый мобильный телефон или вы хотите получить номер модели или что-то подобное? Какую часть вы застряли? Как идентификатор устройства хранится в базе данных раньше? –

ответ

2

Это основная идея о том, как это сделать :)

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

Спасибо! Это то, что мне нужно! – Kevin

0

Возможно, мне не хватает того, что именно вы ищете, но для того, чтобы перенаправить страницу, которую вы можете ссылаться на Response.Redirect следующим образом:

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 

Если вопрос действительно привязан к FormsAuthentication или Somthing еще относительно поиск базы данных Sql и т. д., пожалуйста, уточните.

0

У вас есть два основных способа обработки этой ситуации. Вы можете использовать Response.Redirect или Server.Transfer.

Рекомендуется использовать Server.Transfer для внутренних перенаправлений и Response.Redirect для внешних переадресаций как Server.Transfer leads to a lighter server load and fits the ASP.NET work flow better. Server.Transfer не может пересылаться на внешние страницы и, как таковой, не полезен для передач за пределами того же приложения.

Вы можете использовать Server.Transfer с блоком кода аналогично ниже:

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

Если вам нужно использовать Response.Redirect вместо него будет использоваться с блоком кода аналогично ниже:

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

Параметр True указывает время выполнения ASP.NET для завершения обработки текущей страницы и отправки перенаправления сразу.

+0

Я не мог ссылаться на другой источник в том же сообщении из-за того, что был новым пользователем, поэтому я отправлю его здесь. Немного больше информации о разнице между Server.Transfer и Response.Redirect. http://www.developer.com/net/asp/article.php/3299641/ServerTransfer-Vs-ResponseRedirect.htm –