我在Sitecore MVC应用程序中工作。我编写了一个Action方法来渲染Sitecore Item的元信息。我在Sitecore MVC项目中编写的Action方法正在部署到CM和CD。
我想在CD网站中限制我的Action方法,并继续在CM网站中使用。
使用:Sitecore 7.5,MVC4
答案 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服务器上。