本文整理汇总了C#中Bend.Util.HttpProcessor.redirect方法的典型用法代码示例。如果您正苦于以下问题:C# HttpProcessor.redirect方法的具体用法?C# HttpProcessor.redirect怎么用?C# HttpProcessor.redirect使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Bend.Util.HttpProcessor
的用法示例。
在下文中一共展示了HttpProcessor.redirect方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: registration
public void registration(HttpProcessor p, string[] route)
{
//Здесь мы видим как применяеться проверка данных
//Способ : p.InputPOST("Password") != "null" & p.InputPOST("Username") != "null"
//показывает нам как он много занимет места в коде и какой не практичный
//способ formvalidation.add(p.InputPOST("Password"), "num|required");
//показывает нам как можно выполнить любую проверку текста просто указывая их
//здесь мы задали чтобы данные не были пустыми и содержали целочисленный тип
formvalidation.add("Password", "required|num");
//здесь мы задали чтобы данные не были пустыми и содержали буквы англ и русс
//также добавил проверку на уникальность в БД is_unique[users.login] users ->БД login -> поле где проверить,
//ответ false если в БД уже такое есть.
formvalidation.add("Username", "required|alpha|is_unique[users.login]");
//здесь мы запускаем его и узнаем можно продолжать работать или просто пустить клиента на страницу registration
if (formvalidation.Start(p))
{
//старый способ проверки кода просто на существование строк
if (p.InputPOST("Password") != "null" & p.InputPOST("Username") != "null")
if (connect.insert_update("INSERT INTO `users` (`login`, `pass`, `rules`) VALUES(@0, @1, '001');", new string[] { p.InputPOST("Username"), p.InputPOST("Password") }))
p.redirect("http://localhost:8080/login");
}
}
示例2: login
public void login(HttpProcessor p, string[] route)
{
if (p.InputPOST("Password") != "null" & p.InputPOST("Username") != "null")
if (connect.select("Select `id_users`, `login`, `rules` from `users` Where `login`='" + p.InputPOST("Username") + "' and `pass`='" + p.InputPOST("Password") + "';"))
while (connect.MyReader.Read())// Читаем
{
Sessions.add("id_users", connect.MyReader.GetValue(0).ToString());
Sessions.add("login", connect.MyReader.GetValue(1).ToString());
Sessions.add("rules", connect.MyReader.GetValue(2).ToString());
Sessions.add("auth", "1");
p.redirect("http://localhost:8080/index");
}
}
示例3: admin
public void admin(HttpProcessor p, string[] route)
{
p.HTML.Body.Add("title", "Панель управления");
if (Sessions.rules(Session.RulesType.admin) || Sessions.rules(Session.RulesType.moderator))
{
string str = "Добро пожаловать" + Sessions.item("login") + " Вы ";
//проверка сэссии пользователя и его прав.
str += (Sessions.rules(Session.RulesType.user)) ? "Пользователь" : "Нет";
if (Sessions.item("auth") != "null")
p.HTML.Body.Add("welcome", str);
else p.HTML.Body.Add("welcome", "Авторизируйтесь");
}
else p.redirect("http://localhost:8080/index");
}
示例4: exit
public void exit(HttpProcessor p, string[] route)
{
Sessions.exit();
p.redirect("http://localhost:8080/login");
}
示例5: route
// Убираем старую версию распределения запросов и делаем ниже новую машрузитацию
public void route(HttpProcessor p)
{
string ContentType = "text/html";
string Extension = "";
//Переменная для определения запуска процедуры т.е. если клиент ввел http://localhost/index -> вызовет процедуру RouterProcedure::index
string RoutePath = p.http_url;
//Убираем / в начале
if (RoutePath.IndexOf('/') != -1)
RoutePath = RoutePath.Substring(RoutePath.IndexOf('/') + 1);
//если был GET запрос его тоже убираем
if (RoutePath.IndexOf('?') != -1)
RoutePath = RoutePath.Remove(RoutePath.IndexOf('?'));
//проверяем на скачку файла т.е. если введено http://localhost/css/style.css, то передаем переменной Extension ".css"
if (RoutePath.IndexOf('.') != -1)
Extension = p.http_url.Substring(p.http_url.LastIndexOf('.'));
//Проверяем на скачку,если Extension больше 0, даем скачать файл
if (Extension.Length != 0)
{
switch (Extension)
{
case ".css":
ContentType = "text/css";
break;
case ".js":
ContentType = "text/javascript";
break;
case ".jpg":
ContentType = "image/jpeg";
break;
case ".jpeg":
case ".png":
case ".gif":
ContentType = "image/" + Extension.Substring(1);
break;
default:
if (Extension.Length > 1)
{
ContentType = "application/" + Extension.Substring(1);
}
else
{
ContentType = "application/unknown";
}
break;
}
FileStream FS;
try
{
FS = new FileStream(@"C:\Project\Access\d2" + p.http_url, FileMode.Open, FileAccess.Read, FileShare.Read);
//Отправка Заголовка.
string Headers = "HTTP/1.1 200 OK\nContent-Type: " + ContentType + "\nContent-Length: " + FS.Length + "\n\n";
byte[] HeadersBuffer = Encoding.UTF8.GetBytes(Headers);
p.socket.GetStream().Write(HeadersBuffer, 0, HeadersBuffer.Length);
// Буфер для отправки клиенту данных
byte[] Buffer = new byte[1024];
// Переменная для хранения количества байт, переданных клиенту
int Count;
while (FS.Position < FS.Length)
{
// Читаем данные из файла
Count = FS.Read(Buffer, 0, Buffer.Length);
// И передаем их клиенту
p.socket.GetStream().Write(Buffer, 0, Count);
}
FS.Close();
}
catch (Exception)
{
// Если случилась ошибка, посылаем клиенту ошибку 500
p.outputStream.Write("HTTP/1.0 404 File not found\n");
p.outputStream.Write("Connection: close\n\n");
}
return;
}
else
{
Sessions = new Session(p);
//если происходит вызов http://localhost/index -> вызовет процедуру RouterProcedure::index
RouterProcedure mc = new RouterProcedure();
//если будет вызов http://localhost/index/login, то будет искать процедуру index, передаст в параметр а login
string[] MasRoutePathFormat = RoutePath.Split('/');
MethodInfo m = mc.GetType().GetMethod(MasRoutePathFormat[0], BindingFlags.Instance | BindingFlags.Public);
//Запускаем и передаем параметр:
//p-сервер,
//MasRoutePathFormat-путь по которуму пришел пользователь
//connect - mysql соединение
try
{
m.Invoke(mc, new Object[] { p, MasRoutePathFormat });
}
catch (Exception)
{
p.redirect("http://localhost:8080/index");
//.........这里部分代码省略.........