public static FileIndexKeyValueStorage <TKey, TValue> Open( string filename, AccessStrategy strategy = AccessStrategy.MemoryMapped, ISerializer <TValue> serializer = null, IIndexSerializer <TKey> indexFactory = null, Policy policy = null) { var fi = new FileInfo(filename); var reader = GetReaderForStrategy(strategy, fi); if (policy != null) { reader = new PolicyStore(reader, policy); } return(new FileIndexKeyValueStorage <TKey, TValue>(fi, reader, serializer, indexFactory)); }
protected override async Task HandleRequirementAsync( AuthorizationHandlerContext context, RiskRequirement requirement ) { if (context.Resource is AuthorizationFilterContext mvcContext) { var user = context.User.FindFirstValue("name"); var role = context.User.FindFirstValue(ClaimTypes.Role); var(mandatory, discretionary) = PolicyStore.GetAuthorizationScheme(mvcContext.RouteData); var riskScore = await _riskService.DetermineRisk(user, role, mandatory, discretionary); mvcContext.HttpContext.Items["risk"] = riskScore; if (riskScore < requirement.MaximumRisk) { context.Succeed(requirement); return; } } context.Fail(); }