Vig*_*ian 4 .net c# asp.net oop session-variables
我正在构建一个Web应用程序.身份验证将由网站管理,这不是我关注的问题.我需要存储的是UserID在某个地方.
一旦他们打开应用程序,我将能够得到他们的UserID.我以前使用Session变量来存储它.我可以创建一个类说:
static string _UserID;
public static string UserDetails
{
get
{
return _UserID;
}
set
{
_globalValue = \\value from webpage;
}
}
Run Code Online (Sandbox Code Playgroud)
并使用UserDetails._UserID而不是将其分配给会话变量?!网站的会话服务器不是很可靠,所以我想我可以用这种方式.这会有用吗?
我从答案中了解到,每个用户都会覆盖变量,这不是我想要的!
如果我create an instance of this class在处理程序中并将其分配给它会是同样的情况UserID吗?
有没有其他方法,我可以使其范围仅限于一个用户,即我登录的UserID应该相同,如果新用户登录到应用程序,它不能被覆盖?使用这种方法的缺点是什么?如果我只使用一个页面并在applciation的启动中分配对象,这种方法是否合适?
静态变量在app域的生命周期内持续存在.因此,导致静态变量"重置"的两件事是应用程序域重新启动或使用新类.
主要问题是静态变量在所有USERS之间共享,在您假装在其中存储UserID的情况下这很危险.如果您想存储每个用户的sessoin ID,您应该使用Session
你可以在这里找到更多信息:
| 归档时间: |
|
| 查看次数: |
1351 次 |
| 最近记录: |