在模板中如何获取会员登录状态

很多时候需要在模板中加入用户权限判断,首先必须获取到用户登录状态,下面讲解一下登录用户相关的知识:

识别CurrentUser类,登录后的信息会保存在这个类中,这个类包含8个属性,分别如下:

    public class CurrentUser
    {

        public int Uid { get; set; } //用户id
        public string UserName { get; set; } //用户名
        public int MemberGroupId { get; set; }  //用户组id
        public int DepartmentId { get; set; }  //部门id
        public int RoleId { get; set; }  //角色id
        public bool IsSuperAdmin { get; set; }   //是否超级管理员
        public string Email { get; set; }   //用户邮箱
        public string Mobile { get; set; }  //用户手机号
    }


实例1:模板中获取登录的用户信息

@{
    CurrentUser currentUser=ViewBag.CurrentUser; //获取当前登录用户
    int uid=currentUser.Uid; //获取用户Id,未登录uid为0
    string userName=currentUser.UserName;//获取用户名
    //其他的属性可自行获取
}

实例2:判断是否登录。

@{
    CurrentUser currentUser = ViewBag.CurrentUser; //获取当前登录用户
    int uid = currentUser.Uid; //获取用户Id,未登录uid为0
    if (uid == 0)
    {
        //未登录的逻辑
        <div><a href="/member/login/">登录</a>  <a href="/member/reg/">注册</a></div>
    }
    else
    {
        //已经登录的逻辑
        <div><a href="/member/">欢迎你!@currentUser.UserName</a></div>
    }
}

注:以上代码需要满足以下条件才能正常生效。

1、用户中心不能绑定独立域名。

2、页面不能开启http缓存。

如果不满足以上条件,请参考单点登录的教程。