首页 \ 问答 \ 我可以通过配置切换.Net缓存提供程序(Can I switch out .Net cache provider through configuration)

我可以通过配置切换.Net缓存提供程序(Can I switch out .Net cache provider through configuration)

在.Net中是否有办法切换出缓存提供程序,就像我会员资格提供者或角色提供者一样? 我想保持代码不变,但转而使用像memcached或AppFabric这样的分布式缓存。

所有我发现的是如何切换输出缓存提供程序。 这可能是必要的,但它没有解决直接从我的代码中调用Cache的问题。

我发现了很多库,他们在接口后面抽象Cache,但这意味着我必须去我的代码中的每个位置并注入新的抽象。 我也在使用PLINQO,它在内部使用Cache。

OutputCache是​​我唯一可以通过配置切换的东西吗?

先谢谢你。


Is there a way in .Net to switch out the Cache provider just like I would a membership provider, or role provider? I would like to keep the code untouched but switch to using a distributed cache like memcached or AppFabric.

All I am finding is how to switch out the output cache provider. This might be necessary, but it doesn't solve the issue of when Cache is called directly from within my code.

I've found many libraries and they abstract Cache behind an interface, but this would mean I have to go to every spot in my code and inject the new abstraction. Also I am using PLINQO, which internally uses Cache.

Is OutputCache the only thing I can switch out through configuration?

Thank you in advance.


原文:https://stackoverflow.com/questions/8972830
更新时间:2024-05-04 08:05

最满意答案

我们试图避免使用ctrl-n javascript钩子

算了吧。 虽然理论上你可以尝试使用Control键修饰符捕获'​​n'的按键事件,但是有很多其他方法可以打开一个可能更有可能被使用的新窗口或标签,你将无法使用去抓。 文件 - >新窗口/选项卡,中键单击或按住Shift键单击链接,中键单击后退/前进按钮,右键单击 - 打开新窗口,在新选项卡中打开书签,双击浏览器图标...

用户已经过身份验证,我们会大量使用会话。

这本身不应该是一个问题。 我猜你的意思是你的应用程序在会话中倾倒了不应该有的各种特定于页面的数据,现在当你打开多个窗口时,你会发现应用程序中断了吗? 好吧,怜悯和愉快的改写。

与此同时,您可以做的就是告诉用户“请不要尝试在同一个应用程序上打开两个浏览器窗口”。 有一些方法可以让你在一个页面上发现JavaScript同时注意到JavaScript在同一个域中的另一个页面上运行,通常涉及使用document.cookie作为页面间通信管道。 但那也有点脆弱。


We were trying to avoid ctrl-n javascript hooks

Forget it. Whilst you could in theory try to catch keypress events for ‘n’ with the Control key modifier, there are any number of other ways to open a new window or tab which may be more likely to be used, and you won't be able to catch. File->New Window/Tab, middle click or shift-click link, middle click back/forward buttons, right-click-open-in-new-window, open bookmark in new tab, double-click browser icon...

The user is already authenticated and we make heavy use of sessions.

That shouldn't be a problem in itself. I guess what you mean is that your application is dumping all sorts of page-specific data in the session that it shouldn't have, and now you find the application breaks when you have more than one window open on it? Well, commiserations and happy rewriting.

In the meantime about all you can do is tell the user “please don't try to open two browser windows on the same application”. There are potential ways you can make JavaScript on one page notice that JavaScript is running on another page in the same domain at the same time, generally involving using document.cookie as a inter-page communications conduit. But that's also a bit fragile.

相关问答

更多

相关文章

更多

最新问答

更多
  • python的访问器方法有哪些
  • 使用Zend Framework 2中的JOIN sql检索数据(Retrieve data using JOIN sql in Zend Framework 2)
  • 透明度错误IE11(Transparency bug IE11)
  • linux的基本操作命令。。。
  • 响应navi重叠h1和nav上的h1链接不起作用(Responsive navi overlaps h1 and navi links on h1 isn't working)
  • 在C中读取文件:“r”和“a +”标志的不同行为(Reading a File in C: different behavior for “r” and “a+” flags)
  • NFC提供什么样的带宽?(What Kind of Bandwidth does NFC Provide?)
  • 元素上的盒子阴影行为(box-shadow behaviour on elements)
  • Laravel检查是否存在记录(Laravel Checking If a Record Exists)
  • 设置base64图像的大小javascript - angularjs(set size of a base64 image javascript - angularjs)
  • 想学Linux 运维 深圳有哪个培训机构好一点
  • 为什么有时不需要在lambda中捕获一个常量变量?(Why is a const variable sometimes not required to be captured in a lambda?)
  • 在Framework 3.5中使用服务器标签<%=%>设置Visible属性(Set Visible property with server tag <%= %> in Framework 3.5)
  • AdoNetAppender中的log4net连接类型无效(log4net connection type invalid in AdoNetAppender)
  • 错误:发送后无法设置标题。(Error: Can't set headers after they are sent. authentication system)
  • 等待EC2实例重启(Wait for an EC2 instance to reboot)
  • 如何在红宝石中使用正则表达式?(How to do this in regex in ruby?)
  • 使用鼠标在OpenGL GLUT中绘制多边形(Draw a polygon in OpenGL GLUT with mouse)
  • 江民杀毒软件的KSysnon.sys模块是什么东西?
  • 处理器在传递到add_xpath()或add_value()时调用了什么顺序?(What order are processors called when passed into add_xpath() or add_value()?)
  • sp_updatestats是否导致SQL Server 2005中无法访问表?(Does sp_updatestats cause tables to be inaccessible in SQL Server 2005?)
  • 如何创建一个可以与持续运行的服务交互的CLI,类似于MySQL的shell?(How to create a CLI that can interact with a continuously running service, similar to MySQL's shell?)
  • AESGCM解密失败的MAC(AESGCM decryption failing with MAC)
  • SQL查询,其中字段不包含$ x(SQL Query Where Field DOES NOT Contain $x)
  • PerSession与PerCall(PerSession vs. PerCall)
  • C#:有两个构造函数的对象:如何限制哪些属性设置在一起?(C#: Object having two constructors: how to limit which properties are set together?)
  • 平衡一个精灵(Balancing a sprite)
  • n2cms Asp.net在“文件”菜单上给出错误(文件管理器)(n2cms Asp.net give error on Files menu (File Manager))
  • Zurb Foundation 4 - 嵌套网格对齐问题(Zurb Foundation 4 - Nested grid alignment issues)
  • 湖北京山哪里有修平板计算机的