9.1. Restricting Access to All Application Pages
Problem
You want to restrict access to the pages of your application to authorized users only.
Solution
Change the web.config settings of your application to specify Forms authentication, and create an .aspx login page to collect user credentials and complete the authentication check.
Modify web.config as follows:
Set the
mode
attribute of the<authentication>
element toForms
.Add a
<forms>
child element to the<authentication>
element to specify key aspects of the Forms implementation:<configuration> <system.web> … <authentication mode="Forms"> <forms name=".ASPNETCookbookVBSecurity91" loginUrl="Login.aspx" protection="All" timeout="30" path="/"> </forms> </authentication> </system.web> </configuration>
Add
<deny>
and<allow>
child elements to the<authorization>
element to deny access to anonymous users and allow access to all who have been authenticated:<configuration> <system.web> … <authorization> <deny users="?" /> <!-- Deny anonymous user --> <allow users="*" /> <!-- Allow all authenticated users --> </authorization> </system.web> </configuration>
In the .aspx file for the login page:
Add a Login control.
Customize the Login control as required by your application.
In the code-behind class for the login page, use the .NET language of your choice to:
Use the Authenticate event handler of the Login control to verify the user credentials.
If the user credentials are valid, create a Forms authentication cookie and add it to the cookie collection ...
Get ASP.NET 2.0 Cookbook, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.