Table of Contents xv
Making ASP.NET Pages Cacheable . . . . . . . . . . . . . . . . . . . . . . . . . . . . 758
The HttpCachePolicy Class
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763
Caching Multiple Versions of a Page
. . . . . . . . . . . . . . . . . . . . . . . . . . . 765
Caching Portions of ASP.NET Pages
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 768
Advanced Caching Features
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 774
Summary
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 777
19 ASP.NET Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 779
Where the Threats Come From . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 779
The ASP.NET Security Context
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 781
Who Really Runs My ASP.NET Application?
. . . . . . . . . . . . . . . . . . . . . 781
Changing the Identity of the ASP.NET Process
. . . . . . . . . . . . . . . . . . 784
The Trust Level of ASP.NET Applications
. . . . . . . . . . . . . . . . . . . . . . . . 786
ASP.NET Authentication Methods
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 789
Using Forms Authentication
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 791
Forms Authentication Control Flow
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 792
The FormsAuthentication Class
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 796
Conguration of Forms Authentication
. . . . . . . . . . . . . . . . . . . . . . . . 798
Advanced Forms Authentication Features
. . . . . . . . . . . . . . . . . . . . . . 801
The Membership and Role Management API
. . . . . . . . . . . . . . . . . . . . . . . . 806
The Membership Class
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 807
The Membership Provider
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 812
Managing Roles
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 817
Quick Tour of Claims-Based Identity
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 821
Claims-Based Identity
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 822
Using Claims in ASP.NET Applications
. . . . . . . . . . . . . . . . . . . . . . . . . 824
Security-Related Controls
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 825
The Login Control
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 826
The LoginName Control
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 828
The LoginStatus Control
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 829
The LoginView Control
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 830
The PasswordRecovery Control
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 832
The ChangePassword Control
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 833
The CreateUserWizard Control
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 834
Summary
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 835