Click here to Skip to main content
15,885,180 members
Articles / Web Development / ASP.NET

Secure Persistent ASP.NET Forms Authentication

Rate me:
Please Sign up or sign in to vote.
4.00/5 (3 votes)
27 Aug 2008LGPL33 min read 70.9K   534   51  
An ASP.NET system for having two authentication cookies, one secure and one insecure, to have multiple tiers of security by folder.
' Copyright (c) 2008 Pathfinder Software, LLC.  All Rights Reserved.
' Pathfinder Software <http://www.pfasoft.com>
' PartialAuthenticationSystem is distributed under the terms of the GNU Lesser General Public License (GPL)

' PartialAuthenticationSystem is free software: you can redistribute it and/or modify
' it under the terms of the GNU Lesser General Public License as published by
' the Free Software Foundation, either version 3 of the License, or
' (at your option) any later version.

' PartialAuthenticationSystem is distributed in the hope that it will be useful,
' but WITHOUT ANY WARRANTY; without even the implied warranty of
' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
' GNU Lesser General Public License for more details.

' You should have received a copy of the GNU Lesser General Public License
' along with PartialAuthenticationSystem.  If not, see <http://www.gnu.org/licenses/>.

Imports System.Configuration
Imports System.Web.Configuration

Public Class PartialAuthenticationSection
    Inherits ConfigurationSection

    Private Shared _initialized As Boolean
    Private Shared _properties As New ConfigurationPropertyCollection()
    Private Shared _propName As New ConfigurationProperty("name", GetType(String), ".ASPXIDENTITY")
    Private Shared _propTimeout As New ConfigurationProperty("timeout", GetType(Integer), 172800)
    Private Shared _propRequireSSL As New ConfigurationProperty("requireSSL", GetType(Boolean), False)

    Protected Overrides ReadOnly Property Properties() As System.Configuration.ConfigurationPropertyCollection
        Get
            If Not _initialized Then
                _properties.Add(_propName)
                _properties.Add(_propTimeout)
                _properties.Add(_propRequireSSL)
            End If

            Return _properties
        End Get
    End Property

    <ConfigurationProperty("name", DefaultValue:=".ASPXIDENTITY")> _
    Public Property Name() As String
        Get
            Return Item(_propName)
        End Get
        Set(ByVal value As String)
            Item(_propName) = value
        End Set
    End Property

    <ConfigurationProperty("timeout", DefaultValue:=172800)> _
    Public Property Timeout() As Integer
        Get
            Return Item(_propTimeout)
        End Get
        Set(ByVal value As Integer)
            Item(_propTimeout) = value
        End Set
    End Property

    <ConfigurationProperty("requireSSL", DefaultValue:=False)> _
    Public Property RequireSSL() As Boolean
        Get
            Return Item(_propRequireSSL)
        End Get
        Set(ByVal value As Boolean)
            Item(_propRequireSSL) = value
        End Set
    End Property

End Class

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The GNU Lesser General Public License (LGPLv3)


Written By
Software Developer (Senior) Pathfinder Software
United States United States
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions