因此,我试图将用户的概念引入我的应用程序,并拥有自己的一组自定义登录例程等,工作正常。在我的模块中,我将 IUserSession 绑定到我的实现和 InSingletonScope。
现在我怀疑情况确实如此,并且已经能够证明这不是正确的做法,如果我尝试使用两个用户登录同一站点,我只会得到一组数据。
如果我实现 MembershipProvider,我是否可以避免这样的限制。我知道,如果我实现会员资格提供程序,我不必注入所有内容,但我的登录不仅仅是用户名/密码,如何使用附加数据登录”?
InSingletonScope 在整个应用程序中共享,不受每个用户会话的限制。你所做的任何事情都不会改变这一点。您需要使用其他类似 InRequestScope 的东西,但这仅根据实际请求共享......
试试这个网站:http://iridescent.no/post/Session-Scoped-Bindings-With-Ninject-2.aspx 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];
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)