将用户添加到会话

时间:2019-06-04 09:08:16

标签: c# session model-view-controller

我正在尝试了解MVC和会话。 我想要的是在加载应用程序时,如果没有用户登录,则显示登录页面,如果有用户登录,则显示主页。

我已经将此包装用于会话课程

public class SessionWrapper
{
    private static SessionWrapper instance;
    public static SessionWrapper Instance
    {
        get { return instance ?? (instance = new SessionWrapper()); }
    }

    private SessionWrapper()
    {
    }

    public void Destroy()
    {
        HttpContext.Current.Session.Clear();
        HttpContext.Current.Session.Abandon();
        FormsAuthentication.SignOut();
    }


    public UserInfo CurrentUser
    {
        get
        {
            return (UserInfo)HttpContext.Current.Session["CurrentUser"];
        }
        set
        {
            HttpContext.Current.Session.Add("CurrentUser", value);
        }
    }

这是BaseController

 public class BaseController : Controller
    {
        protected Services Services { get; private set; }
        protected new SessionWrapper sessionWrapper {get { return SessionWrapper.Instance; }}
        protected ConfigWrapper Config { get { return ConfigWrapper.Instance; } }

        public BaseController()
        {
            Services = new Services();
        }
    }
}

现在,这就是我的看法

 <ul class="nav navbar-nav navbar-right">
                        @if(sessionWrapper.CurrentUser == null)
                        {
                            <li>@Html.ActionLink("Register", "Register", "Account")</li>
                            <li>@Html.ActionLink("Login", "Login", "Account")</li>
                        }

用户在登录后被添加到sessionWrapper中。

问题是无法在我的页面上识别sessionWrapper。如何使用? 我已经尝试过@using UserInterface.Wrappers,但是没有用

0 个答案:

没有答案