/// <summary> /// This module requires the user is authenticated with Microsoft Owin authentication. /// </summary> /// <param name="module">Module to enable</param> public static void RequiresMSOwinAuthentication(this INancyModule module) { module.AddBeforeHookOrExecute(ctx => { IAuthenticationManager auth = ctx.GetAuthenticationManager(); return (auth == null || auth.User == null || auth.User.Identity == null || !auth.User.Identity.IsAuthenticated) ? HttpStatusCode.Unauthorized : (Response)null; }, "Requires MS Owin authentication"); }
/// <summary> /// This module requires the security claims to be validated. /// </summary> /// <param name="module"></param> /// <param name="isValid"></param> public static void RequiresSecurityClaims(this INancyModule module, Func<Claim[], bool> isValid) { module.RequiresMSOwinAuthentication(); module.AddBeforeHookOrExecute(ctx => { IAuthenticationManager auth = ctx.GetAuthenticationManager(); return isValid(auth.User.Claims.ToArray()) ? (Response)null : HttpStatusCode.Unauthorized; }, "Requires valid security claims"); }
/// <summary> /// This module requires claims to be validated /// </summary> /// <param name="module">Module to enable</param> /// <param name="isValid">Claims validator</param> public static void RequiresValidatedClaims(this INancyModule module, Func<IEnumerable<string>, bool> isValid) { module.AddBeforeHookOrExecute(SecurityHooks.RequiresAuthentication(), "Requires Authentication"); module.AddBeforeHookOrExecute(SecurityHooks.RequiresValidatedClaims(isValid), "Requires Validated Claim"); }
/// <summary> /// This module requires authentication and certain claims to be present. /// </summary> /// <param name="module">Module to enable</param> /// <param name="requiredClaims">Claim(s) required</param> public static void RequiresClaims(this INancyModule module, IEnumerable<string> requiredClaims) { module.AddBeforeHookOrExecute(SecurityHooks.RequiresAuthentication(), "Requires Authentication"); module.AddBeforeHookOrExecute(SecurityHooks.RequiresClaims(requiredClaims), "Requires Claims"); }
/// <summary> /// This module requires authentication /// </summary> /// <param name="module">Module to enable</param> public static void RequiresAuthentication(this INancyModule module) { module.AddBeforeHookOrExecute(SecurityHooks.RequiresAuthentication(), "Requires Authentication"); }
public static void RequiresDropboxAuthentication(this INancyModule module, IDropNetClient dropNetClient) { module.AddBeforeHookOrExecute(SecurityHooks.RequiresDropboxAuthentication(dropNetClient), "Authentication failed."); }
/// <summary> /// This module requires authentication and any one of certain claims to be present. /// </summary> /// <param name="module">Module to enable</param> /// <param name="requiredClaims">Claim(s) required</param> public static void RequiresAnyClaim(this INancyModule module, params Predicate<Claim>[] requiredClaims) { module.AddBeforeHookOrExecute(SecurityHooks.RequiresAuthentication(), "Requires Authentication"); module.AddBeforeHookOrExecute(SecurityHooks.RequiresAnyClaim(requiredClaims), "Requires Any Claim"); }