gpt4 book ai didi

asp.net-mvc-3 - Ninject 每个 session 单例?

转载 作者:行者123 更新时间:2023-12-04 17:13:00 24 4
gpt4 key购买 nike

所以我正在尝试将用户的概念引入我的应用程序,并让我自己的一组自定义登录例程等工作正常。在我的模块中,我将 IUserSession 绑定(bind)到我的实现和 InSingletonScope。

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

如果我实现 MembershipProvider,我是否会避免这样的限制。我知道,如果我实现成员(member)提供程序,我不必注入(inject)所有内容,但我的登录不仅仅是用户名/密码,如何使用其他数据登录”?

最佳答案

InSingletonScope 在整个应用程序中共享,不受每个用户 session 的限制。你所做的任何事情都不会改变这一点。您需要使用 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];
}
}

关于asp.net-mvc-3 - Ninject 每个 session 单例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4687707/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com