如何在MVC3中创建动态登录按钮

时间:2011-03-15 06:25:33

标签: c# asp.net-mvc asp.net-mvc-3

我有这段代码:

    <!DOCTYPE html>
<html>
<head>
    <title>@ViewBag.Title</title>
    <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
    <script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script>
</head>

<body>
<div id="header">
    <div id="header-inside">
        <div id="logo"></div>
        <div id="top-menu">
            <a href="#">Home</a> | <a href="#">About</a> | <a href="#">Contact</a> | 
        </div>
    </div>
</div>
    <div id="content">
        @RenderBody()
    </div>
</body>
</html>

我想在那里添加一个登录按钮,用于检测用户是否已登录,如果是用户,则会转为“注销”。我正在使用会员服务,所以我会使用MembershipUser

4 个答案:

答案 0 :(得分:3)

如果您拥有Request对象,则可以使用Request.IsAuthenticated(MSDN文档here),无论您如何在幕后管理用户,只要它插入系统ASP .NET提供。

示例:

@if(Request.IsAuthenticated){
  <div id="logout_button"/>
} else {
  <div id="login_button"/>
}

答案 1 :(得分:1)

您可以使用Request.IsAuthenticated来检测用户是否已登录。

答案 2 :(得分:0)

<%= Page.User.Identity.IsAuthenticated %> 

<% Request.IsAuthenticated %> should do the trick

答案 3 :(得分:0)

以下是基于默认项目模板中_LogOnPartial.cshtml的片段:

@if(Request.IsAuthenticated) {        
    using (Html.BeginForm("LogOff", "Account"))
    {
        <input type="submit" name="login" value="Log Off" />
    }
}
else
{
    @:[ @Html.ActionLink("Log On", "LogOn", "Account") ]
}