![](/img/trans.png)
[英]Using static variables in C# Web Application - Accessing Session variables in class properties
[英]Static class and Session variables
我定义了一个静态类。 在那个静态类中,我有以下方法。
public static int GetUserId()
{
if(IsUserLoggedIn())
{
return Convert.ToInt16(HttpContext.Current.Session["user"]);
}
return 0;
}
我的问题是:为每个用户运行该函数时,每个用户会获得不同的值吗? (考虑到每个用户会话为Session [“ user”]获得不同的userId。
我不知道静态类是否对此有用或会导致冲突问题。 我正在C#/ ASP.NET中进行开发。
简而言之,我相信答案是肯定的,但是您应该避免在非工厂方法中使用硬编码的依赖项……考虑接受HttpSessionState
或至少接受HttpContext
对象,例如:
public static int GetUserId(HttpContext context)
{
if(IsUserLoggedIn())
{
return Convert.ToInt16(context.Session["user"]);
}
return 0;
}
但是,您可能应该使用HttpContext
IMHO上的内置IPrincipal
( User
)属性。
HttpContext对于每个请求都会有所不同,所以可以。
这会给你一个错误(从静态方法中调用非静态方法。)。 请参考:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.