title: Authentication, Authorization, User and Role Management and general Security in .NET
body: <p>I need to know how to go about implementing general security for a C# application. What options do I have in this regard? I would prefer to use an existing framework if it meets my needs - I don't want to re-invent the wheel.</p>
  
  <p>My requirements are as follows:</p>
  
  <ul>
  <li>the usual username/password authentication</li>
  <li>managing of users - assign permissions to users</li>
  <li>managing of roles - assign users to roles, assign permissions to roles</li>
  <li>authorization of users based on their username and role</li>
  </ul>
  
  <p>I am looking for a free / open-source framework/library that has been time-tesed and used by the .Net community.</p>
  
  <p>My application takes a client/server approach, with the server running as a windows service, connecting to a SQL Server database. Communication between client and server will be through WCF.</p>
  
  <p>One other thing that is important is that I need to be able to assign specific users or roles permissions to View/Update/Delete a specific entity, whether it be a Customer, or Product etc. For e.g. Jack can view a certain 3 of 10 customers, but only update the details of customers Microsoft, Yahoo and Google, and can only delete Yahoo.</p>