检查cookie是否已设置

时间:2012-02-20 15:18:04

标签: c# asp.net html session razor

我试图在用户屏幕顶部渲染一个工具栏,如果他们已登录,他们可以访问他们的帐户等。如果他们没有登录,它将显示一个允许他们登录的表单.I我不完全确定如何使用C#和Razor执行此操作并继续遇到语法和编译错误。

我目前的表格如下:我有一个文件_siteLayout.cshtml。这会将工具栏存储在屏幕顶部。它根据外部数据库检查登录表单,如果经过身份验证,则create会为客户端提供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 :(得分:0)

这有助于您了解Cookies in ASP.NET using C#