ASP.NET applications are hosted by a web server and are accessed using the stateless HTTP protocol. As such, if an application uses stateful interaction, it has to implement state management on its own. ASP.NET provides various functions for state management.

Conceptually, Microsoft treats “state” as GUI state. Problems may arise if an application needs to keep track of “data state”; for example, a finite state machine which may be in a transient state between requests or which takes a long time to initialize. State management in ASP.NET pages with authentication can make Web scraping difficult or impossible.