C.Y.A. is important. Recently it occurred to me that now that  WorldLightASP.com has some customers, among whom are a naturopathic  doctor, company of wild land forest fighters and a hydrogen fuel cell  inventor, maybe it was time to limit some liability. With this in mind I  create the License object.
The end result is that when new or  existing members login to my content management system they are  presented  with a End User License Agreement (EULA) and encouraged to click the  "AGREE" button before continuing.
 
 Before building the EULA  component I thought about what I really needed to tool to do:
- Support multiple EULAs
 
- Track who has and who hasn't agreed to the most current EULA
 
- Track  which version of the EULA a given user has agreed to
Fortunately, I've spent a lot of time making my CMS engine really  modular so it was surprisingly easy to plug in this new component which  is comprised simply of: 
- An EULA table
 
- An EULA INT field in my members table
 
- A  Stored Procedure HasMemberSignedMostUpToDateAgreement
 
- and  another Stored Procedure UpdateMemberSignitureStatus
 
- and of  course the code and T-SQL to add new EULAs and display the  EULA to members at the appropriate point.
 
When the member logs in, the code runs  HasMemberSignedMostUpToDateAgreement. If true the member is taken to the  member homepage. If false the member is taken to the EULA page where  they can agree to the updated terms and conditions.
 Simple and  effective peace of mind in under 5 hours.
 Code Forth,
 Martin  Welch