Как обезопасить действие контроллера Sitecore (MVC) только для пользователей, вошедших в систему Sitecore?
Я работаю в приложении Sitecore MVC. Я написал методы Action для отображения метаинформации Sitecore Item. Метод действий, который я написал в проекте Sitecore MVC, развертывается как на CM, так и на CD.
Я хочу ограничить свой метод действия на CD-сайте и продолжать использовать на сайте CM.
Использование: Sitecore 7.5, MVC4
1 ответ
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.