dnstommy почти нет - только незначительные изменения в его реализации получит вас там. Атрибут 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
если вы находитесь в shell
сайте. То есть, если вы находитесь в редакторе содержимого.
Если вы просматриваете сайт на сервере CM, или предварительный просмотре сайта, SiteContext будет вашего определения сайта, и если вы установили content
свойство будет включены, в противном случае он будет нулевым. Таким образом, не безопасный чек, чтобы узнать, находитесь ли вы на сервере CM.
[ссылка] (http://www.sitecore.net/learn/blogs/technical-blogs/morten-ljungberg-sitecore-whats-new/posts/2015/08/adding-a-custom-buttontoto -the-ribbon.aspx) Я следил за вышеуказанным блогом и создал кнопку. При нажатии кнопки я открываю новую страницу 'SheerResponse.Eval (" window.open ('/ app/Presentation/Detail? Itemid = "+ context.Items [0] .ID.ToString() +" & db = "+ context.Items [0] .Database.ToString() +" ',' _blank ') ");' Я всегда получаю анонимность из контекста. – Sakthivel