我有一个场景,我不确定我的方法是否是最好的,我很感谢反馈/建议。什么是基于业务逻辑屏蔽网络资源的策略
场景: 我有一堆基于Flash的(swf)“模块”,它们托管在我的aspnet应用程序中。每个闪存都有自己的文件系统目录,其中包含闪存资源。考虑这个简单的网站结构:
/webapp/index.aspx
/webapp/flash/flash1/flash.swf
/webapp/flash/flash1/someimage.jpg
/Web应用程序/闪光灯/ FLASH1/someclip.mp3
/webapp/flash/flash2/flash.swf
/webapp/flash/flash2/someimage.jpg
/webapp/flash/flash2/someclip.mp3
诸如此类
,其中命名约定是/Web应用程序/闪光灯/闪光灯[ID]/
我要实现它检查用户是否应该被允许进入*子文件夹中的文件的安全机制“[ID ]',它是内容。
**插入业务逻辑基于存储在SQL数据库这里*
我正在考虑写信息的HttpModule它确实像
ProcessRequest(){
if(Request.RawUrl.Contains("/webapp/flash") && !userHasValidLicenseForModule(1)){
Redirect("login.aspx");
}
}
但有这么的HttpModule只适用于文件中的缺点扩展名映射到aspnet(在IIS6中)。这意味着我将不得不将所有可能的扩展映射到该过程(.mp3,.jpg等),这是我宁愿避免的。
我也在考虑使用HttpHandler,但是Flash文件需要能够使用相对URL链接到它的资源。 (所以像/webapp/getprotectedstuff.ashx?file=flash1234/flash.swf代理状的图案并不者优先)
也许是明智的Flash文件和资产保存在网站根目录之外的全部。也许还有其他的策略我没有想过。
使用aspnet安全并编写自定义成员资格提供程序?
有什么想法?