缓存页面的仅管理员内容 - c#

我有一个Asp.Net MVC 5网站。在这个网站上,我有一个非常复杂的页面,需要进行很多查询才能构建它。问题是,我想在此页面上为管理员用户添加一些控件(或隐藏一些元素)。我的第一个想法是添加一个JavaScript文件,该文件创建仅管理员内容,并通过<script>标记将其添加到甜甜圈缓存方法中。但是,尽管每次都调用甜甜圈缓存方法,但是如果访问该页面的第一个用户是管理员,它就会添加内容(因此,此后看到的所有用户都将看到控件,对于管理员用户,JavaScript将呈现两次!

我可以为每个元素制作一个甜甜圈缓存方法,但这打破了甚至创建缓存的意义。如果您每次有人访问该页面时都创建所有元素,那么缓存页面有什么意义?

参考方案

您可以使用OutputCache的VaryByCustom属性,以便将Admin与普通用户区分开。

GetVaryByCustomString global.asax替代中,您可以检查HttpContext,当前的Principal等,以确定该值。

Source。

这样,您将为普通用户分配一个缓存,为管理员分配一个缓存。

ASP.NET MVC 5自定义登录,无需脚手架,数据库优先 - c#

我对asp.net和mvc还是很陌生,所以我正在努力学习尽可能多的知识...为此,我从头开始编写博客网站,但是我对身份验证和授权有些困惑。由于我倾向于不真正使用任何脚手架的东西,所以我首先要使用数据库,所以不希望asp.net身份为我创建表。我对散列和加盐密码很酷,并对照数据库检查用户,我遇到的麻烦是将用户设置为登录状态并检查他们应该能够访问什么。我真的很想…

ASP.NET-如何更改JSON序列化的方式? - javascript

我正在使用ASP.NET通过以下查询返回Json文件:public ActionResult getTransactionTotals(int itemID) { DBEntities db = new DBEntities(); var query = from trans in db.Transactions // Linq query removed …

在JavaScript中运行方法C# - javascript

打扰一下,我有这种C#asp方法。受保护的无效btnSave_Click(对象发送者,EventArgs e)有谁知道我该如何发送脚本给您?可以办到?。 javascript大神给出的解决方案 是的,那可以做到。为此,您在.aspx.cs页中创建了函数,然后单击保存按钮上的代码将其复制到函数中,然后执行以下步骤。//Call cs method from J…

在C#中将文本转换为绣花针 - javascript

                                                                                                                    我正在像http://www.vistaprint.in/vp/ns/easypath/studio.aspx?template…

asp.net oledbcommand返回所有行 - c#

我正在使用Oledbconnection连接到Microsoft Access数据库,并且正在使用OleDbCommand检索一些信息。我在数据库中有一个名为retrieveInfo的查询,该查询检索3行数据。字段中有一些重复项,但是应该是这样。我的数据如下所示: Name Email A [email protected] B [email protected] B C@gmai…