私はgenericHandler.ashxでメディアを保護したいと思います。 /handlers/my-handler.ashx?media-url=xxx.jpgへの書き換えルール/メディアがありますが、私はumbraco apiでurlからnodeIdを取得する関数を見つけることができません。私は、このSQLクエリを使用する瞬間UmbracoはURLからメディアを取得します
:http://our.umbraco.org/forum/developers/api-questions/4284-getting-media-Id-from-path
に触発
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;
}
あなたが前にこれを実行するために、任意のumbraco API関数を知っていますか?
はありません何のMEDIAIDがURL内ありません。 /media/1042/xxx.jpgはcmsPropertyData.Idを返します –
はい、URLからプロパティID 1042を取得できます。プロパティIDを取得することで、メディアアイテムを取得できます。 –
@mahesh umbraco APIを使ってプロパティIDからどのようにメディアアイテムを取得しますか? – marapet