如何仅将Sitecore控制器操作(MVC)保护到登录用户的Sitecore?

时间:2016-02-23 22:58:06

标签: sitecore sitecore-mvc sitecore7.5

我在Sitecore MVC应用程序中工作。我编写了一个Action方法来渲染Sitecore Item的元信息。我在Sitecore MVC项目中编写的Action方法正在部署到CM和CD。

我想在CD网站中限制我的Action方法,并继续在CM网站中使用。

使用:Sitecore 7.5,MVC4

1 个答案:

答案 0 :(得分:2)

dnstommy几乎就在那里 - 只是稍微改变一下他的实现会让你到那里。 <{1}}属性不是必需的。

HttpPost

返回public ActionResult MetaData() { if (Sitecore.Context.IsLoggedIn == false) { return new EmptyResult(); } // build your model and return to the view return View(); } 与在视图上呈现空字符串相同,因此就好像页面上不存在呈现一样。

如果您希望进一步锁定某个特定角色,可以使用EmptyResult()进行检查。

关于Sitecore.Context.User.IsInRole("ROLE NAME")的说明 - 如果您在Sitecore.Context.ContentDatabase网站,则设置为master 。也就是说,如果你在内容编辑器中。

如果您在CM服务器上查看网站或预览网站,SiteContext将您的网站定义,如果您设置了shell属性,它将被启用,否则它将为null。因此是安全检查以确定您是否在CM服务器上。