private static string[] GetBlockedIPs()
{
// 1尝试从缓存中读取
string[] ips = (string[])HttpContext.Current.Cache[BlockedIPCacheKey];
if (ips != null)
return ips;
// 2从数据库中读取
using (RxDataContext db = new RxDataContext())
{
ips = db.IPBlockeds.Select(ipb => ipb.UserIP).ToArray();
}
// 3放入缓存
SqlCacheDependency depend = new SqlCacheDependency("IPBlockedDependency", "IPBlocked");
HttpContext.Current.Cache.Insert(BlockedIPCacheKey, ips, depend);
return ips;
}