加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-3 – Ninject每个会话单身?

发布时间:2020-12-16 03:37:01 所属栏目:asp.Net 来源:网络整理
导读:所以我试图将用户的概念引入我的应用程序,并拥有自己的一组自定义登录例程等工作正常.在我的模块中,我将IUserSession绑定到我的实现和InSingletonScope. 现在我怀疑是这种情况,并且已经能够证明这不是正确的事情,如果我尝试使用两个用户登录同一站点,我只获
所以我试图将用户的概念引入我的应用程序,并拥有自己的一组自定义登录例程等工作正常.在我的模块中,我将IUserSession绑定到我的实现和InSingletonScope.

现在我怀疑是这种情况,并且已经能够证明这不是正确的事情,如果我尝试使用两个用户登录同一站点,我只获得一组数据.

如果我实现MembershipProvider,我是否应该避免这种限制.我知道,如果我实施会员提供者,我不必注入所有内容,但我的登录不仅仅是用户名/密码,如何使用其他数据登录“?

解决方法

InSingletonScope在整个应用程序中共享,不受每个用户会话的限制.你所做的一切都不会改变这一点.您需要使用像InRequestScope这样的其他东西,但这只是根据实际请求共享的…

试试这个网站:http://iridescence.no/post/Session-Scoped-Bindings-With-Ninject-2.aspx

public static class NinjectSessionScopingExtention {
    public static void InSessionScope<T>(this IBindingInSyntax<T> parent) {
        parent.InScope(SessionScopeCallback);
    }

    private const string _sessionKey = "Ninject Session Scope Sync Root";

    private static object SessionScopeCallback(IContext context) {
        if (HttpContext.Current.Session[_sessionKey] == null) {
            HttpContext.Current.Session[_sessionKey] = new object();
        }

        return HttpContext.Current.Session[_sessionKey];
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读