Click here to Skip to main content
15,884,473 members
Articles / Programming Languages / C

The Windows Access Control Model: Part 2

Rate me:
Please Sign up or sign in to vote.
4.80/5 (28 votes)
27 Jun 2005CPOL43 min read 244.5K   7.2K   113  
This second part of the Access Control series will program with the basic Access Control structures.
These three projects represent the sample code for the Code Project article: 
The Windows Access Control Model Part 2.

There are equivalent programs written in

Windows NT (C)
Windows 2000 (C++)
ATL (C++) (most of the ATL code is available in the Codeproject article)

These sample programs were not designed to be reusable, but rather to demo
the access control functions. It's more for education rather than for reuse.

The functions are as follows:

Print a SID.
Convert a SID to a trustee and username.
Obtain the user SID from an access token (and print the user from it).
Enable and disable a Privilege.
Obtain a security descriptor from an file object.
Extract Control, Owner, Group, SACL, and DACL from security descriptor.
Read a DACL.
Perform an access check.
Create a DACL.
Create a Security descriptor.
Apply the security descriptor to an object (creating it if necessary).
Using the private security object functions.

Given enough interest, I may change the code to be reusable
(except for method 1!).

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Web Developer
United States United States
Mr. Shah is a reclusive C++/C# developer lurking somewhere in the depths of the city of London. He learnt physics at Kings' College London and obtained a Master in Science there. Having earned an MCAD, he teeters on the brink of transitioning from C++ to C#, unsure of which language to jump to. Fortunately, he also knows how to use .NET interop to merge code between the two languages (which means he won't have to make the choice anytime soon).

His interests (apart from programming) are walking, football (the real one!), philosophy, history, retro-gaming, strategy gaming, and any good game in general.

He maintains a website / blog / FAQ / junk at shexec32.serveftp.net, where he places the best answers he's written to the questions you've asked. If you can find him, maybe you can hire Mr. Shah to help you with anything C++[/CLI]/C#/.NET related Smile | :) .

Comments and Discussions