我的网站使用网络用户控件。将为一组用户设置用户控件的属性。例如如果我有20个用户访问我的网站,其中5个可能正在使用id = 1,4的用户控件,使用id = 2的用户控件。我有一个与每个用户控件关联的属性,我希望在访问公共ID的用户之间共享。
我想到了以下内容:
请建议。
答案 0 :(得分:0)
如果您决定不使用数据库,请记住,如果您的应用程序扩展到多个服务器,您可能需要在此时重新访问您的体系结构,否则您的控件可能最终会在不同的服务器上显示不同的信息。相同的身份。
如果您对此感到满意,那么您可能需要考虑将信息存储在ASP.NET缓存中,例如。
System.Web.Caching.Cache cache = Page.Cache;
List<KeyValuePair<string, object>> controlSetup;
controlSetup = cache.Get("ControlSetup" + this.Id.ToString());
if (controlSetup == null)
{
// Create the control setup from scratch
// Put the created control setup into the cache
cache.Put("ControlSetup" + this.Id.ToString(), controlSetup);
}
foreach (KeyValuePair(string, object) item In controlSetup
{
// Set the control values
}
答案 1 :(得分:0)
不确定我是否理解正确;假设您要根据id
显示/隐藏某些项目。
如果是这样,那么怎么样:
您在加载时提供控制开关盒;检查id
并设置您要共享的项目的可见性。
比如说,id
是用户角色。基于此,我会:
switch (nRoleID)
{
case 1: //Set controls visibility and hide others/
break;
case 2: //Do something.
break; ;
default: //Hide all
break;
}
大声思考。
答案 2 :(得分:0)
请记住HTTP是无状态的,因此您的前两个选项无效。
最好的选择是存储多个用户共同的信息是DB。