建立一個父類別 CBasePage
Public Class CPageBase
Inherits System.Web.UI.Page
'''
''' 是否要使用SSL,而父類別是不使用SSL的
'''
'''
Protected Overridable ReadOnly Property IsUseSSL() As Boolean
Get
Return False
End Get
End Property
Private Sub Page_PreInit(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreInit
NeedNotSSL()
End Sub
Private Sub NeedNotSSL()
If (Not Me.IsUseSSL) AndAlso (Me.Request.IsSecureConnection) Then
Dim NewUrl As New UriBuilder(Me.Request.Url)
With NewUrl
.Scheme = Uri.UriSchemeHttp
.Port = 80
End With
Me.Response.Redirect(NewUrl.ToString)
End If
End Sub
End Class
再建立一個子類別 CBasePageSSL
Public Class CPageBaseSSL
Inherits CPageBase
Protected Overrides ReadOnly Property IsUseSSL() As Boolean
Get
Return True
End Get
End Property
Private Sub Page_PreInit(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreInit
NeedSSL()
End Sub
Private Sub NeedSSL()
If (Me.IsUseSSL) AndAlso (Not Me.Request.IsSecureConnection) Then
Dim NewUrl As New UriBuilder(Me.Request.Url)
With NewUrl
.Scheme = Uri.UriSchemeHttps
.Port = 443
End With
Me.Response.Redirect(NewUrl.ToString)
End If
End Sub
End Class
多數的網頁只需繼承 CBasePage,有要用到 SSL 協定的頁面再繼承 CBasePageSSL 就可以了。
透過 UriBuilder 可以很方便的取得、改變所要求的網址。
寫完這篇之後,才發現我 Delay 了,哈哈。保哥早就發表了相同的文章了,冏
0 留言