添加项目文件。

This commit is contained in:
2023-03-13 15:00:34 +08:00
parent 42bf06ca3e
commit 1d73df3235
1205 changed files with 185078 additions and 0 deletions

View File

@@ -0,0 +1,67 @@
namespace JNPF.Extras.CollectiveOAuth.Cache;
/// <summary>
/// 授权状态默认缓存.
/// </summary>
public class DefaultAuthStateCache : IAuthStateCache
{
/// <summary>
/// 默认缓存前缀.
/// </summary>
private static string Default_Cache_Prefix = "CollectiveOAuth_Status_";
/// <summary>
/// 保存缓存.
/// </summary>
/// <param name="key">键.</param>
/// <param name="value">值.</param>
public void cache(string key, string value)
{
HttpRuntimeCache.Set($"{Default_Cache_Prefix}{key}", value);
}
/// <summary>
/// 保存缓存.
/// </summary>
/// <param name="key">键.</param>
/// <param name="value">值.</param>
/// <param name="timeout">过期时间戳.</param>
public void cache(string key, string value, long timeout)
{
HttpRuntimeCache.Set($"{Default_Cache_Prefix}{key}", value, timeout);
}
/// <summary>
/// 是否存在.
/// </summary>
/// <param name="key">键.</param>
/// <returns>true or false.</returns>
public bool containsKey(string key)
{
var cacheObj = HttpRuntimeCache.Get($"{Default_Cache_Prefix}{key}");
if (cacheObj != null)
{
return true;
}
return false;
}
/// <summary>
/// 取值缓存.
/// </summary>
/// <param name="key">键.</param>
/// <returns></returns>
public string get(string key)
{
var cacheObj = HttpRuntimeCache.Get($"{Default_Cache_Prefix}{key}");
if (cacheObj != null)
{
return Convert.ToString(cacheObj);
}
else
{
return null;
}
}
}

View File

@@ -0,0 +1,48 @@
using Microsoft.Extensions.Caching.Memory;
namespace JNPF.Extras.CollectiveOAuth.Cache;
/// <summary>
/// http运行时缓存.
/// </summary>
public class HttpRuntimeCache
{
/// <summary>
/// 缓存.
/// </summary>
public static IMemoryCache memoryCache = new MemoryCache(new MemoryCacheOptions() { });
/// <summary>
/// 获取数据缓存.
/// </summary>
/// <param name="CacheKey">键.</param>
public static object Get(string CacheKey)
{
memoryCache.TryGetValue(CacheKey, out object result);
return result;
}
/// <summary>
/// 设置数据缓存
/// 变化时间过期平滑过期。表示缓存连续2个小时没有访问就过期TimeSpan.FromSeconds(7200).
/// </summary>
/// <param name="CacheKey">键.</param>
/// <param name="objObject">值.</param>
/// <param name="Second">过期时间默认7200秒.</param>
/// <param name="Sliding">是否相对过期,默认是;否,则固定时间过期.</param>
public static void Set(string CacheKey, object objObject, long Second = 7200, bool Sliding = true) =>
memoryCache.Set(CacheKey, objObject, Sliding ?
new MemoryCacheEntryOptions().SetSlidingExpiration(TimeSpan.FromSeconds(Second)) :
new MemoryCacheEntryOptions().SetAbsoluteExpiration(TimeSpan.FromSeconds(Second)));
/// <summary>
/// 移除指定数据缓存.
/// </summary>
/// <param name="CacheKey">键.</param>
public static void Remove(string CacheKey) => memoryCache.Remove(CacheKey);
/// <summary>
/// 移除全部缓存.
/// </summary>
public static void RemoveAll() => memoryCache.Dispose();
}

View File

@@ -0,0 +1,36 @@
namespace JNPF.Extras.CollectiveOAuth.Cache;
/// <summary>
/// 授权状态缓存抽象类.
/// </summary>
public interface IAuthStateCache
{
/// <summary>
/// 存入缓存.
/// </summary>
/// <param name="key">缓存key.</param>
/// <param name="value">缓存内容.</param>
void cache(string key, string value);
/// <summary>
/// 存入缓存.
/// </summary>
/// <param name="key">缓存key.</param>
/// <param name="value">缓存内容.</param>
/// <param name="timeout">指定缓存过期时间(毫秒).</param>
void cache(string key, string value, long timeout);
/// <summary>
/// 获取缓存内容.
/// </summary>
/// <param name="key">缓存key.</param>
/// <returns>缓存内容.</returns>
string get(string key);
/// <summary>
/// 是否存在key如果对应key的value值已过期也返回false.
/// </summary>
/// <param name="key">缓存key.</param>
/// <returns>true存在key并且value没过期falsekey不存在或者已过期.</returns>
bool containsKey(string key);
}