In this chapter, we went over authentication and access controls. We began with authentication and working with sessions to understand how user information can be across various pages on the student portal. Then we introduced access controls where we defined the amount of access for a logged-in user. We continued the development of our student portal by introducing the concept of user roles where the access was different for users with different roles. In the next chapter, we will look at the various types of caching and how caching can help our application.