在 Web 应用程序 C# 中的选定用户之间共享数据
我的网站使用网络用户控件。用户控件的属性将被设置为我的一组用户所共有的。例如,如果我有 20 个用户访问我的网站,其中 5 个可能使用 id = 1 的用户控件,4 个使用 id = 2 的用户控件。我有一个与每个用户控件关联的属性,我希望在访问公共 ID 的用户之间共享该属性。
我想到了以下内容:
- 保存 id/proprty 值数组组合的应用程序变量
- 为用户控件创建静态属性,但是我觉得该值将在所有用户之间共享,而与 id 无关。
- 或者将其存储在数据库中[我想减少与数据库的交互。]
请建议。
My website uses a web user control. The properties for the user control will be set will be common for a set of my users. e.g. if I have 20 users accessing my website, 5 of them may be using the user control with id = 1 , 4 using the user control with id =2. I have a property associated with each user control which I would like to be shared between users accessing a common id.
I thought of the following:
- Applicaton variable which saves a id / proprty value array combination
- Creating static properties for the user control, however i feel that the value will be shaed between all the users irrespective of the id.
- Or store it in the database [i want to reduce interaction with the database.]
Please advice.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
不确定我的理解是否正确;假设您想根据
id
显示/隐藏某些项目。如果是这样,那么如何:
在负载时在控制器中提供一个开关盒;检查
id
并设置您想要共享的项目的可见性。例如,
id
是用户角色。因此,基于此,我会:只是大声思考。
Not sure if I understand you correctly; assuming that you want to show/hide certain item based upon the
id
.If thats so, then how about:
You provide a switch case in your control upon load; that checks for the
id
and set the visibility of the item that you want to be shared.Say, for instance,
id
is the user role. So based upon that, I would:Just thinking out loud.
请记住 HTTP 是无状态的,因此您的前 2 个选项将不起作用。
最好的选择是将多个用户共有的信息存储在数据库中。
Remember HTTP is stateless, so your first 2 options wont work.
The best alternative is to store the information thats common for multiple users is DB.
如果您决定不使用数据库,请记住,如果您的应用程序扩展到多个服务器,您可能需要重新访问您的体系结构,否则您的控件可能最终会在不同服务器上为同一 ID 显示不同的信息。
如果您对此感到满意,那么您可能需要考虑将信息存储在 ASP.NET 缓存中,例如
If you're determined not to use a database, bear in mind that if your application scales out to multiple servers you may need to revisit your architecture at that point otherwise your control may end up displaying different information on different servers for the same id.
If you're happy with that, then you might want to think about storing your information in the ASP.NET cache e.g.