/*++ Copyright (c) 1991-1996 Microsoft Corporation Module Name: brsec.c Abstract: This module contains the Browser service support routines which create security objects and enforce security _access checking. Author: Cliff Van Dyke (CliffV) 22-Aug-1991 Revision History: --*/ #include "precomp.h" #pragma hdrstop // // Include brsec.h again allocating the actual variables // this time around. // #define BRSECURE_ALLOCATE #include "brsec.h" #undef BRSECURE_ALLOCATE NTSTATUS BrCreateBrowserObjects( VOID ) /*++ Routine Description: This function creates the workstation user-mode objects which are represented by security descriptors. Arguments: None. Return Value: NT status code --*/ { NTSTATUS Status; // // Order matters! These ACEs are inserted into the DACL in the // following order. Security access is granted or denied based on // the order of the ACEs in the DACL. // // // Members of Group SECURITY_LOCAL aren't allowed to do a UAS logon // to force it to be done remotely. // ACE_DATA AceData[] = { {ACCESS_ALLOWED_ACE_TYPE, 0, 0, GENERIC_ALL, &AliasAdminsSid}, {ACCESS_ALLOWED_ACE_TYPE, 0, 0, BROWSER_CONTROL_ACCESS, &AliasSystemOpsSid}, {ACCESS_ALLOWED_ACE_TYPE, 0, 0, BROWSER_CONTROL_ACCESS, &LocalSystemSid}, {ACCESS_ALLOWED_ACE_TYPE, 0, 0, BROWSER_QUERY_ACCESS, &WorldSid} }; // // Actually create the security descriptor. // Status = NetpCreateSecurityObject( AceData, sizeof(AceData)/sizeof(AceData[0]), AliasAdminsSid, AliasAdminsSid, &BrGlobalBrowserInfoMapping, &BrGlobalBrowserSecurityDescriptor ); return Status; }