Проверка, установлен ли cookie - PullRequest
6 голосов
/ 20 февраля 2012

Я пытаюсь отобразить панель инструментов в верхней части экрана пользователей, если они вошли в систему, где они могут получить доступ к своей учетной записи и т. Д. Если они не вошли в систему, отобразится форма, позволяющая им войти в систему. IЯ не совсем уверен, как это сделать, используя C # и Razor, и продолжать использовать синтаксические ошибки и ошибки компиляции.

Моя текущая форма выглядит следующим образом: у меня есть один файл, _siteLayout.cshtml.Это хранит панель инструментов в верхней части экрана.Он проверяет форму входа по внешней базе данных и, если она аутентифицирована, создает, дает клиенту cookie.Форма, которую я, по сути, хочу:

if(user logged in)
   render account management page
else{
   render login page
}

Простая, но у меня много проблем.Вот мой код, удаляющий большую часть, пока:

<body>
    @using System.Text;
    @using System.Net.Sockets;
   @{
        if(Request.Cookies["mpUsername"] == null){
        //if user is not logged in  
            //some authentication is ran, if passed, isValid is set to true    
                if (isValid) {
                    //login is valid, set cookie
                    HttpCookie cookie = Request.Cookies.Get("mpUsername");
                if(cookie == null) {
                    cookie = new HttpCookie("mpUsername");
                    cookie.Value = username;
                    cookie.Expires = DateTime.Now.AddDays(3);
                    Response.Cookies.Add(cookie);
                }
                } else {
                    //login invalid, prompt for pass again
                <text>Password incorrect, please try again</text>
                }
            } 
    }
  }//end of razor, HTML begins
    <html>
        <body>
        @{  //if cookie is set
            //if(Request.Cookies["mpUsername"] == null){   

        }
        <h2>ACCOUNT MANAGEMENT</h2>
        @{
          } else {//user not logged in, cookie not set
         }
        //login form
        </body>
    </html>

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

1 Ответ

0 голосов
/ 20 февраля 2012

Это поможет вам узнать о Cookies в ASP.NET с использованием C # .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...