コード例 #1
0
ファイル: AuthzTests.cs プロジェクト: dahall/Vanara
 public static SafeAUTHZ_CLIENT_CONTEXT_HANDLE GetTokenAuthContext(SafeAUTHZ_RESOURCE_MANAGER_HANDLE hRM)
 {
     using SafeHTOKEN hTok = SafeHTOKEN.FromProcess(GetCurrentProcess(), TokenAccess.TOKEN_QUERY);
     Assert.That(AuthzInitializeContextFromToken(0, hTok, hRM, IntPtr.Zero, new LUID(), IntPtr.Zero, out SafeAUTHZ_CLIENT_CONTEXT_HANDLE hCtx), ResultIs.Successful);
     Assert.That(!hCtx.IsInvalid);
     return(hCtx);
 }
コード例 #2
0
ファイル: AuthzTests.cs プロジェクト: catalparue/Vanara
        public static SafeAUTHZ_CLIENT_CONTEXT_HANDLE GetCurrentUserAuthContext(SafeAUTHZ_RESOURCE_MANAGER_HANDLE hResMgr)
        {
            var b = AuthzInitializeContextFromSid(AuthzContextFlags.DEFAULT, PSIDTests.GetCurrentSid(), hResMgr, IntPtr.Zero, new LUID(), IntPtr.Zero, out var hCtx);

            if (!b)
            {
                TestContext.WriteLine($"AuthzInitializeContextFromSid:{Win32Error.GetLastError()}");
            }
            Assert.That(b);
            Assert.That(!hCtx.IsInvalid);
            return(hCtx);
        }
コード例 #3
0
ファイル: AuthzTests.cs プロジェクト: dahall/Vanara
        public void AuthzAddSidsToContextTest()
        {
            using SafePSID everyoneSid = ConvertStringSidToSid("S-1-1-0");
            using SafePSID localSid    = ConvertStringSidToSid("S-1-2-0");
            SID_AND_ATTRIBUTES sids           = new() { Sid = everyoneSid, Attributes = (uint)GroupAttributes.SE_GROUP_ENABLED };
            SID_AND_ATTRIBUTES restrictedSids = new() { Sid = localSid, Attributes = (uint)GroupAttributes.SE_GROUP_ENABLED };

            using SafeAUTHZ_RESOURCE_MANAGER_HANDLE hRM = GetAuthzInitializeResourceManager();
            using SafeAUTHZ_CLIENT_CONTEXT_HANDLE hCtx  = GetCurrentUserAuthContext(hRM);
            Assert.That(AuthzAddSidsToContext(hCtx, sids, 1, restrictedSids, 1, out SafeAUTHZ_CLIENT_CONTEXT_HANDLE hNewCtx), ResultIs.Successful);
        }

        [Test]
コード例 #4
0
ファイル: AuthzTests.cs プロジェクト: catalparue/Vanara
 public static SafeAUTHZ_CLIENT_CONTEXT_HANDLE GetTokenAuthContext(SafeAUTHZ_RESOURCE_MANAGER_HANDLE hRM)
 {
     using (var hTok = SafeHTOKEN.FromProcess(GetCurrentProcess(), TokenAccess.TOKEN_QUERY))
     {
         var b = AuthzInitializeContextFromToken(0, hTok, hRM, IntPtr.Zero, new LUID(), IntPtr.Zero, out var hCtx);
         if (!b)
         {
             TestContext.WriteLine($"AuthzAccessCheck:{Win32Error.GetLastError()}");
         }
         Assert.That(b);
         Assert.That(!hCtx.IsInvalid);
         return(hCtx);
     }
 }
コード例 #5
0
ファイル: AuthzTests.cs プロジェクト: dahall/Vanara
        public void AuthzAccessCheckAndCachedTest()
        {
            using SafeAUTHZ_RESOURCE_MANAGER_HANDLE hRM = GetAuthzInitializeResourceManager();
            using SafeAUTHZ_CLIENT_CONTEXT_HANDLE hCtx  = GetCurrentUserAuthContext(hRM);
            using SafeAUTHZ_AUDIT_EVENT_HANDLE hEvt     = GetAuthzInitializeObjectAccessAuditEvent();
            using SafePSECURITY_DESCRIPTOR psd          = AdvApi32Tests.GetSD(TestCaseSources.SmallFile);
            using AUTHZ_ACCESS_REPLY reply = new(1);
            AUTHZ_ACCESS_REQUEST req = new(ACCESS_MASK.MAXIMUM_ALLOWED);

            Assert.That(AuthzAccessCheck(AuthzAccessCheckFlags.NONE, hCtx, req, hEvt, psd, null, 0, reply, out SafeAUTHZ_ACCESS_CHECK_RESULTS_HANDLE hRes), ResultIs.Successful);
            Assert.That(reply.GrantedAccessMask, Is.Not.EqualTo(IntPtr.Zero));
            TestContext.WriteLine($"Access:{string.Join(",", reply.GrantedAccessMaskValues.Select(u => ((FileAccess)u).ToString()))}");

            Assert.That(AuthzCachedAccessCheck(0, hRes, req, default, reply), Is.True);
コード例 #6
0
ファイル: AuthzTests.cs プロジェクト: dahall/Vanara
 public static SafeAUTHZ_CLIENT_CONTEXT_HANDLE GetCurrentUserAuthContext(SafeAUTHZ_RESOURCE_MANAGER_HANDLE hResMgr)
 {
     Assert.That(AuthzInitializeContextFromSid(AuthzContextFlags.DEFAULT, SafePSID.Current, hResMgr, IntPtr.Zero, new LUID(), IntPtr.Zero, out SafeAUTHZ_CLIENT_CONTEXT_HANDLE hCtx), ResultIs.Successful);
     Assert.That(!hCtx.IsInvalid);
     return(hCtx);
 }