Introduction Recipe 17.1. Controlling Access to Types in a Local Assembly Recipe 17.2. Encrypting/Decrypting a String Recipe 17.3. Encrypting and Decrypting a File Recipe 17.4. Cleaning up Cryptography Information Recipe 17.5. Verifying that a String Remains Uncorrupted Following Transmission Recipe 17.6. Wrapping a String Hash for Ease of Use Recipe 17.7. A Better Random Number Generator Recipe 17.8. Storing Data Securely Recipe 17.9. Making a Security Assert Safe Recipe 17.10. Preventing Malicious Modifications to an Assembly Recipe 17.11. Verifying That an Assembly Has Been Granted Specific Permissions Recipe 17.12. Minimizing the Attack Surface of an Assembly Recipe 17.13. Obtaining Security/Audit Information Recipe 17.14. Granting/Revoking Access to a File or Registry Key Recipe 17.15. Protecting String Data with Secure Strings Recipe 17.16. Securing Stream Data Recipe 17.17. Encrypting web.config Information Recipe 17.18. Obtaining the Full Reason a SecurityException Was Thrown Recipe 17.19. Achieving Secure Unicode Encoding Recipe 17.20. Obtaining a Safer File Handle |