Хорошо, у меня есть страница default.aspx, которую я пытаюсь перенаправить пользователя на другую страницу в зависимости от того, хранится ли их deviceId в базе данных SQL Server. Он должен направить пользователя на login.aspx, если запись для пользователя будет найдена или на страницу newdevice.aspx, если запись не найдена. Я хочу, чтобы это произошло на странице_Load, но пока не удалось понять это.Страница Переадресация на странице_Load IF Запись существует
ответ
Это основная идея о том, как это сделать :)
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");
}
}
Спасибо! Это то, что мне нужно! – Kevin
Возможно, мне не хватает того, что именно вы ищете, но для того, чтобы перенаправить страницу, которую вы можете ссылаться на 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 и т. д., пожалуйста, уточните.
У вас есть два основных способа обработки этой ситуации. Вы можете использовать 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 для завершения обработки текущей страницы и отправки перенаправления сразу.
Я не мог ссылаться на другой источник в том же сообщении из-за того, что был новым пользователем, поэтому я отправлю его здесь. Немного больше информации о разнице между Server.Transfer и Response.Redirect. http://www.developer.com/net/asp/article.php/3299641/ServerTransfer-Vs-ResponseRedirect.htm –
Что вы подразумеваете под идентификатором устройства? Вы говорите о мобильном устройстве? Вы говорите об идентификаторе устройства, который однозначно идентифицирует каждый мобильный телефон или вы хотите получить номер модели или что-то подобное? Какую часть вы застряли? Как идентификатор устройства хранится в базе данных раньше? –