1. Отправить HTTP POST-запрос с параметрами: login - admin, password - admin123 по адресу http://host:port/webapp/registration.
- static void Main(string[] args)
- {
- using(var client = new HttpClient())
- {
- var pairs = new List<KeyValuePair<string, string>>
- {
- new KeyValuePair<string, string>("login", "admin"),
- new KeyValuePair<string, string>("password", "12345")
- };
- var content = new FormUrlEncodedContent(pairs);
- var response = client.PostAsync("http://localhost:8080/users", content).Result;
- if (response.IsSuccessStatusCode)
- {
- Console.WriteLine("Success");
- }
- }
- }
2. Обработать принятый HTTP POST-запрос, который содержит в себе параметры login и password, вывести в консоль приложения полученные параметры.
- public void HandlePost()
- {
- var login = Request.Form["login"];
- var pass = Request.Form["password"];
- Console.WriteLine("Login: {0}\nPassword: {1}", login, pass);
- }
3. Обработать принятый HTTP GET-запрос, который содержит в себе параметр id, вывести в консоль приложения полученный параметр.
- public void HandlePost()
- {
- var id = Request.QueryString["id"];
- Console.WriteLine("Id: {0}", id);
- }
4. Продемонстрировать работу с HTTP сессией. Положить параметр в сессию. Извлечь параметр, сохраненный в сессии. Завершить сессию.
- public void AddParameter(string userData)
- {
- Session["userData"] = userData;
- }
- public string ExtractParameter()
- {
- string userData = Session["userData"];
- Session.Abandon();
- }
5. Реализовать форму входа пользователя в систему. В серверной части приложения обработать данные с формы и сохранить пользователя в сессии.
- public class HomeController : Controller
- {
- public ActionResult Index()
- {
- return View(new User());
- }
- [HttpPost]
- public ActionResult Index(User user)
- {
- Session["user"] = user.Login;
- return RedirectToAction("Result", user);
- }
- public ActionResult Result(User user)
- {
- return View(user);
- }
- }
- @model PI.Models.User
- @{
- ViewBag.Title = "Index";
- }
- <h2>Index</h2>
- @using (Html.BeginForm())
- {
- @Html.EditorFor(model => model.Login)
- <br/>
- @Html.EditorFor(model => model.Password)
- <input type="submit" value="Go"/>
- }
- @model PI.Models.User
- @{
- ViewBag.Title = "Result";
- }
- <h2>Result</h2>
- <p>Hello @Session["user"]</p>
6. Продемонстрировать работу с HTTP Cookie. Добавить в Cookie идентификатор сессии. Установить время жизни Cookie - 14 дней.
- public void AddCookie()
- {
- HttpCookie aCookie = new HttpCookie("sessionId");
- aCookie.Value = HttpSessionState.SessionID.ToString();
- aCookie.Expires = DateTime.Now.AddDays(14);
- Response.Cookies.Add(aCookie);
- }
7. Продемонстрировать работу с HTTP Cookie. Прочитать Сookie c именем SESSION_ID, получить сессию по её идентификатору. Инвалидировать сессию.
- string sessionId = Request.Cookies["sessionId"].Value;
- HttpCookie currentUserCookie = Request.Cookies["sessionId"];
- Response.Cookies.Remove("sessionId");
- currentUserCookie.Expires = DateTime.Now.AddDays(-10);
- currentUserCookie.Value = null;
- Response.SetCookie(currentUserCookie);
- Session.Abandon();
8. Принять HTTP POST-запрос, который содержит в себе имя пользователя и его дату рождения и вернуть ответ с полученными данными в формате JSON.
- public JsonObject UserData()
- {
- string name = Request.Form["name"];
- DateTime birthday = DateTime.Parse(Request.Form["birthday"]);
- return new JSONObject().Put("name",name).Put("birthday",birthday);
- }
9. Нарисовать диаграмму паттерна MVC, привести пример кода, реализующий данный паттерн.
- public class LoginView
- {
- public string Login { get; set; }
- public string Name { get; set; }
- public LoginView() {}
- public LoginView(string l, string n)
- {
- Login = l;
- Name = n;
- }
- }
- public class LoginController : Controller
- {
- [HttpGet]
- public ActionResult Index()
- {
- return View(new LoginView(“admin”, “Administrator”));
- }
- }
- @model lb2.Models.LoginView
- <h2> user</h2>
- <table>
- <tr>
- <th>
- Login
- </th>
- <th>
- Name
- </th>
- </tr>
- <tr>
- <td>
- @Model.Login
- </td>
- <td>
- @Model.Name
- </td>
- </tr>
- </table>
10. Реализовать форму входа пользователя в систему, где в качестве логина используется email, пароль должен содержать не меньше 8 символов и обязательно содержать одну цифру. Реализовать клиентскую валидацию введенных данных.
- <form action="" method="get">
- <input id="login" name="login" type="email" required>
- <input id="pass" name="password" type="password" pattern="^(?=.*\d).{8,}$" required>
- <input type="submit" value="login">
- </form>