我正在Sitecore MVC應用程序中工作。我寫了一個Action方法來呈現Sitecore項目的元信息。我在Sitecore MVC項目中編寫的Action Method已經部署到CM和CD。如何保護我的Sitecore控制器操作(MVC)僅限Sitecore登錄用戶?
我想在CD網站中限制我的Action方法並繼續在CM網站中使用。
使用:Sitecore的7.5,MVC4
我正在Sitecore MVC應用程序中工作。我寫了一個Action方法來呈現Sitecore項目的元信息。我在Sitecore MVC項目中編寫的Action Method已經部署到CM和CD。如何保護我的Sitecore控制器操作(MVC)僅限Sitecore登錄用戶?
我想在CD網站中限制我的Action方法並繼續在CM網站中使用。
使用:Sitecore的7.5,MVC4
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服務器上。
[link](http://www.sitecore.net/learn/blogs/technical-blogs/morten-ljungberg-sitecore-whats-new/posts/2015/08/adding-a-custom-button-to -the-ribbon.aspx) 我跟着上面的博客並創建了一個按鈕。點擊一個按鈕,我打開一個新頁面SheerResponse.Eval(「window.open('/ app/Presentation/Detail?itemid =」+ context.Items [0] .ID.ToString()+「&db =「+ context.Items [0] .Database.ToString()+」','_blank')「);' 我總是從上下文獲得匿名。 – Sakthivel