I was faced with the issue to create a user management in one of my applications, which allowed the user to only gain access to certain features of the Application.
Inititally, all the business required was to set up a user level, and then according to that level they would want the program to be hardcoded to allow access to users with atleast that access level..
Sounded a bit abnormal as the number of users was not small..it was medium and potential to grow, especially when the application had a possibility to be setup for other similar organizations.
So I then created this user group management, when you could create groups, and assign which features or programs the group had access to. Users could then be alloted to those groups. However certain users might be required to have access to some indiviadul features only, so that was also covered. I created this and applied it to a Windows forms, using 3rd party controls (Devexpress) and with its ribbon tabs, i could only show those tabs and those feature buttons to which the user had access to.
I had already started this from home, and created the management console in pure windows forms. Not as nifty as the 3rd party controls, but then serves the purpose in a similar way.
I created it as a DLL with its own database, however I was challenged with creating the strongly typed database to have access only to the database defined in the application refrencing this library.
The only catch to it is that the User’s ID has to be in an integer format. Looking at this tool, It can be integrated into the management features, and can be used straigt from the box (just need to setup the database).
I have uploaded this to Codeplex and can be found at:
And yes I have a Name : AlterGear
This is filed under the LGPL Licence, so feel free to change anything in it and crete your own library from it.
At the moment, most of the code is within the form classes, So my next level to this is to split assignments into pure cs files so that the library can be used to build your own UI, rather than relying on the one provided within it. (Its not that bad)