From 9bf861307cd7d0edbebebd578a4ba7eab7096ef6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vincent=20Lain=C3=A9?= Date: Wed, 30 Dec 2015 12:04:00 +0100 Subject: [PATCH] Rework the empty or space only filtering in Roles and Schemes --- .../AuthorizationPolicy.cs | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/src/Microsoft.AspNet.Authorization/AuthorizationPolicy.cs b/src/Microsoft.AspNet.Authorization/AuthorizationPolicy.cs index 3e6d0a773d..befcb3c277 100644 --- a/src/Microsoft.AspNet.Authorization/AuthorizationPolicy.cs +++ b/src/Microsoft.AspNet.Authorization/AuthorizationPolicy.cs @@ -85,26 +85,22 @@ namespace Microsoft.AspNet.Authorization policyBuilder.Combine(policy); useDefaultPolicy = false; } - var rolesSplit = authorizeAttribute.Roles?.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + var rolesSplit = authorizeAttribute.Roles?.Split(','); if (rolesSplit != null && rolesSplit.Any()) { - for (int i = 0; i < rolesSplit.Length; ++i) - { - rolesSplit[i] = rolesSplit[i].Trim(); - } + var trimmedRolesSplit = rolesSplit.Where(r => !string.IsNullOrWhiteSpace(r)).Select(r => r.Trim()); - policyBuilder.RequireRole(rolesSplit.Where(r => !string.IsNullOrWhiteSpace(r))); + policyBuilder.RequireRole(trimmedRolesSplit); useDefaultPolicy = false; } - var authTypesSplit = authorizeAttribute.ActiveAuthenticationSchemes?.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + var authTypesSplit = authorizeAttribute.ActiveAuthenticationSchemes?.Split(','); if (authTypesSplit != null && authTypesSplit.Any()) { foreach (var authType in authTypesSplit) { - var trimmedAuthType = authType.Trim(); - if(!string.IsNullOrWhiteSpace(trimmedAuthType)) + if (!string.IsNullOrWhiteSpace(authType)) { - policyBuilder.AuthenticationSchemes.Add(trimmedAuthType); + policyBuilder.AuthenticationSchemes.Add(authType.Trim()); } } }