我想通過genericHandler.ashx保護我的媒體。我有一個重寫規則/媒體/handlers/my-handler.ashx?media-url=xxx.jpg但是我無法在umbraco api中找到從url獲取nodeId的函數。Umbraco從網址獲取媒體
在我用這個SQL查詢的時刻:
public static Int32 GetNodeIdFromUrl(String url)
{
SqlParameter[] sqParams = { new SqlParameter("@url", url) };
string sql = "select contentNodeId from cmsPropertyData where dataNvarchar = @url";
int id = -1;
try
{
id = (int)SqlHelper.ExecuteScalar(umbraco.GlobalSettings.DbDSN,CommandType.Text,sql,sqParams);
}
catch (Exception ex)
{
umbraco.BusinessLogic.Log.Add(
umbraco.BusinessLogic.LogTypes.Error,
new umbraco.BusinessLogic.User(0), 0,
"Error from download security handler ->" + ex.Message.ToString());
}
return id;
}
的靈感來自http://our.umbraco.org/forum/developers/api-questions/4284-getting-media-Id-from-path
你知道的任何一把umbraco API函數之前做到這一點?
沒有沒有mediaId的網址內。 /media/1042/xxx.jpg給出一個cmsPropertyData.Id –
是的,那麼你可以從網址獲取屬性ID 1042。通過獲取媒體資料,您可以獲取媒體資源。 –
@mahesh您是如何從umbraco API獲得媒體項目的屬性ID? – marapet