Dotnetnuke:修改Login控件实现登录后返回登录前页面
一.简介
Login控件(~/admin/skins/login.ascx):该控件的作用就是在页面上提供一个login或logout的链接,让用户登录或登出网站;
Account Login模块:处理登录逻辑.
二.Dotnetnuke原Login控件的不足
1.若使用Dotnetnuke原来的Login控件,当用户点击Login跳转到登录页面后,发现登录页面只包含Account Login模块,不包含其它模块,不美观;
2.新建的登录页面登录后无法正常返回登录前页面.
三.解决方法
Account Login模块可处理returnurl传入参数,Account Login处理完登录逻辑后会返回returnurl指定的页面,若returnurl未指定,则跳回默认页面.
若在跳往登录页面时传入returnurl参数,则可实现登录后返回登录前页面的功能.这里通过修改Login.ascx控件传入returnurl参数.
修改后Login.ascx.cs代码如下(96-98为修改代码):
1
Imports DotNetNuke.Entities.Host
2![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
3
Namespace DotNetNukeNamespace DotNetNuke.UI.Skins.Controls
4
''' -----------------------------------------------------------------------------
5
''' <summary></summary>
6
''' <remarks></remarks>
7
''' <history>
8
''' [smcculloch]10/15/2004 Fixed Logoff Link for FriendlyUrls
9
''' [cniknet] 10/15/2004 Replaced public members with properties and removed
10
''' brackets from property names
11
''' </history>
12
''' -----------------------------------------------------------------------------
13
Partial Class LoginClass Login
14![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
15
Inherits UI.Skins.SkinObjectBase
16![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
17
' public attributes
18
Private _text As String
19
Private _cssClass As String
20
Private _logoffText As String
21![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
22
Const MyFileName As String = "Login.ascx"
23![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
24
Public MembersPublic Members
53![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
54
'*******************************************************
55
'
56
' The Page_Load server event handler on this page is used
57
' to populate the role information for the page
58
'
59
'*******************************************************
60
Private Sub Page_Load()Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
61![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
62
' public attributes
63
If CssClass <> "" Then
64
hypLogin.CssClass = CssClass
65
End If
66![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
67
If Request.IsAuthenticated = True Then
68
If LogoffText <> "" Then
69
If LogoffText.IndexOf("src=") <> -1 Then
70
LogoffText = Replace(LogoffText, "src=""", "src=""" & PortalSettings.ActiveTab.SkinPath)
71
End If
72
hypLogin.Text = LogoffText
73
Else
74
hypLogin.Text = Services.Localization.Localization.GetString("Logout", Services.Localization.Localization.GetResourceFile(Me, MyFileName))
75
End If
76![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
77
If HostSettings.GetHostSetting("UseFriendlyUrls") = "Y" Then
78
hypLogin.NavigateUrl = FriendlyUrl(PortalSettings.ActiveTab, ApplicationURL(PortalSettings.ActiveTab.TabID) & "&portalid=" & PortalSettings.PortalId.ToString, "Logoff.aspx")
79
Else
80
hypLogin.NavigateUrl = ResolveUrl("~/Admin/Security/Logoff.aspx?tabid=" & PortalSettings.ActiveTab.TabID & "&portalid=" & PortalSettings.PortalId.ToString)
81
End If
82
Else
83
If Text <> "" Then
84
If Text.IndexOf("src=") <> -1 Then
85
Text = Replace(Text, "src=""", "src=""" & PortalSettings.ActiveTab.SkinPath)
86
End If
87
hypLogin.Text = Text
88
Else
89
hypLogin.Text = Services.Localization.Localization.GetString("Login", Services.Localization.Localization.GetResourceFile(Me, MyFileName))
90
End If
91![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
92
If PortalSettings.LoginTabId <> -1 And Request.QueryString("override") Is Nothing Then
93
' user defined tab
94![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
95
' modified by jailu, 2007-04-15
96
Dim strURL As String = Server.UrlEncode(Request.Url.ToString())
97
Dim strTemp As String = NavigateURL(PortalSettings.LoginTabId, "", "returnurl=" + strURL)
98
hypLogin.NavigateUrl = strTemp
99
Else
100
' admin tab
101
hypLogin.NavigateUrl = NavigateURL("Login")
102
End If
103
End If
104![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
105
End Sub
106![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
107
End Class
108![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
109
End Namespace
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
5
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
6
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
7
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
8
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
9
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
10
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
11
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
12
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
13
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
14
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
15
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
16
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
17
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
18
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
19
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
20
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
21
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
22
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
23
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
24
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
53
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
54
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
55
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
56
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
57
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
58
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
59
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
60
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
61
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
62
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
63
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
64
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
65
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
66
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
67
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
68
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
69
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
70
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
71
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
72
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
73
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
74
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
75
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
76
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
77
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
78
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
79
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
80
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
81
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
82
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
83
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
84
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
85
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
86
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
87
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
88
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
89
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
90
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
91
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
92
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
93
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
94
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
95
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
96
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
97
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
98
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
99
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
100
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
101
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
102
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
103
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
104
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
105
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
106
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
107
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
108
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
109
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)