public void Should_throw_when_action_is_null() { // Arrange var model = new SecurityRuntime(); var advancedConfiguration = new AdvancedConfiguration(model); // Act & Assert Assert.Throws <ArgumentNullException>(() => advancedConfiguration.Conventions(null)); }
public void Should_ignore_missing_configurations() { // Arrange var model = new SecurityRuntime(); var advancedConfiguration = new AdvancedConfiguration(model); // Act advancedConfiguration.IgnoreMissingConfiguration(); // Assert Assert.That(model.ShouldIgnoreMissingConfiguration, Is.True); }
public void Should_have_default_policy_cache_lifecycle_set_to_PerHttpRequest() { // Arrange var model = new SecurityRuntime(); var advancedConfiguration = new AdvancedConfiguration(model); // Act advancedConfiguration.SetDefaultResultsCacheLifecycle(Cache.PerHttpRequest); // Assert Assert.That(model.DefaultResultsCacheLifecycle, Is.EqualTo(Cache.PerHttpRequest)); }
public void Should_add_convention() { // Arrange var model = new SecurityRuntime(); var advancedConfiguration = new AdvancedConfiguration(model); var expectedConvention = new MockConvention(); // Act advancedConfiguration.Conventions(conventions => conventions.Add(expectedConvention)); // Assert Assert.That(model.Conventions.Contains(expectedConvention), Is.True); }
internal AdvancedConfiguration(SecurityRuntime runtime) { _runtime = runtime ?? throw new ArgumentNullException(nameof(runtime)); if (!_runtime.Conventions.Any()) { Conventions(conventions => { conventions.Add(new FindByPolicyNameConvention()); conventions.Add(new FindDefaultPolicyViolationHandlerByNameConvention()); }); } }
internal AdvancedConfiguration(SecurityRuntime runtime) { if (runtime == null) throw new ArgumentNullException("runtime"); _runtime = runtime; if (!_runtime.Conventions.Any()) { Conventions(conventions => { conventions.Add(new FindByPolicyNameConvention()); conventions.Add(new FindDefaultPolicyViolationHandlerByNameConvention()); }); } }
public void Should_remove_matching_convention() { // Arrange var model = new SecurityRuntime(); var advancedConfiguration = new AdvancedConfiguration(model); Assert.That(model.Conventions.Any(c => c is FindByPolicyNameConvention), Is.True); // Act advancedConfiguration.Conventions(conventions => conventions.RemoveAll(c => c is FindByPolicyNameConvention)); // Assert Assert.That(model.Conventions.Any(c => c is FindByPolicyNameConvention), Is.False); }
public void Should_have_conventions_for_default_PolicyViolationHandler_applied() { // Arrange var securityModel = new SecurityRuntime(); // Act new AdvancedConfiguration(securityModel); // Assert var conventions = securityModel.Conventions.OfType<IPolicyViolationHandlerConvention>().ToList(); Assert.That(conventions.Count(), Is.EqualTo(2)); Assert.That(conventions.ElementAtOrDefault(0), Is.TypeOf<FindByPolicyNameConvention>()); Assert.That(conventions.ElementAtOrDefault(1), Is.TypeOf<FindDefaultPolicyViolationHandlerByNameConvention>()); }
public void Should_have_conventions_for_default_PolicyViolationHandler_applied() { // Arrange var securityModel = new SecurityRuntime(); // Act new AdvancedConfiguration(securityModel); // Assert var conventions = securityModel.Conventions.OfType <IPolicyViolationHandlerConvention>().ToList(); Assert.That(conventions.Count(), Is.EqualTo(2)); Assert.That(conventions.ElementAtOrDefault(0), Is.TypeOf <FindByPolicyNameConvention>()); Assert.That(conventions.ElementAtOrDefault(1), Is.TypeOf <FindDefaultPolicyViolationHandlerByNameConvention>()); }
public void Should_remove_convention() { // Arrange var model = new SecurityRuntime(); var advancedConfiguration = new AdvancedConfiguration(model); var convention = new MockConvention(); advancedConfiguration.Conventions(conventions => conventions.Add(convention)); Assert.That(model.Conventions.Contains(convention), Is.True); // Act advancedConfiguration.Conventions(conventions => conventions.Remove(convention)); // Assert Assert.That(model.Conventions.Contains(convention), Is.False); }
internal static WindowsImpersonationContext SafeImpersonate(SafeTokenHandle userToken, WindowsIdentity wi, ref StackCrawlMark stackMark) { bool flag; int hr = 0; SafeTokenHandle safeTokenHandle = GetCurrentToken(TokenAccessLevels.MaximumAllowed, false, out flag, out hr); if ((safeTokenHandle == null) || safeTokenHandle.IsInvalid) { throw new SecurityException(Win32Native.GetMessage(hr)); } FrameSecurityDescriptor securityObjectForFrame = SecurityRuntime.GetSecurityObjectForFrame(ref stackMark, true); if (securityObjectForFrame == null) { throw new SecurityException(Environment.GetResourceString("ExecutionEngine_MissingSecurityDescriptor")); } WindowsImpersonationContext context = new WindowsImpersonationContext(safeTokenHandle, GetCurrentThreadWI(), flag, securityObjectForFrame); if (userToken.IsInvalid) { hr = System.Security.Principal.Win32.RevertToSelf(); if (hr < 0) { Environment.FailFast(Win32Native.GetMessage(hr)); } UpdateThreadWI(wi); securityObjectForFrame.SetTokenHandles(safeTokenHandle, (wi == null) ? null : wi.TokenHandle); return(context); } hr = System.Security.Principal.Win32.RevertToSelf(); if (hr < 0) { Environment.FailFast(Win32Native.GetMessage(hr)); } if (System.Security.Principal.Win32.ImpersonateLoggedOnUser(userToken) < 0) { context.Undo(); throw new SecurityException(Environment.GetResourceString("Argument_ImpersonateUser")); } UpdateThreadWI(wi); securityObjectForFrame.SetTokenHandles(safeTokenHandle, (wi == null) ? null : wi.TokenHandle); return(context); }
public void Should_throw_when_action_is_null() { // Arrange var model = new SecurityRuntime(); var advancedConfiguration = new AdvancedConfiguration(model); // Act & Assert Assert.Throws<ArgumentNullException>(() => advancedConfiguration.Conventions(null)); }
public void Should_have_default_policy_cache_lifecycle_set_to_PerHttpSession() { // Arrange var model = new SecurityRuntime(); var advancedConfiguration = new AdvancedConfiguration(model); // Act advancedConfiguration.SetDefaultResultsCacheLifecycle(Cache.PerHttpSession); // Assert Assert.That(model.DefaultResultsCacheLifecycle, Is.EqualTo(Cache.PerHttpSession)); }
public void SetUp() { _runtime = new SecurityRuntime(); _advancedConfiguration = new AdvancedConfiguration(_runtime); }
public void SetUp() { Runtime = new SecurityRuntime(); }
public void SetUp() { _runtime = new SecurityRuntime(); }