在DNN模块的上下文中,找出登录功能的URL是一种很好的通用方法?如何在DotNetNuke中获取门户网站当前的登录URL?
3
A
回答
3
这里是个实用方法获取登录网址:
C#
/// <summary>
/// Gets the login URL for the given portal from the current <paramref name="request"/>.
/// </summary>
/// <param name="portalSettings">The portal settings.</param>
/// <param name="request">The request.</param>
/// <returns>The URL for the login page</returns>
/// <exception cref="ArgumentNullException">if <paramref name="portalSettings"/> or <paramref name="request"/> is null.</exception>
public static string GetLoginUrl(PortalSettings portalSettings, HttpRequest request)
{
if (portalSettings != null && request != null)
{
int tabId = portalSettings.ActiveTab.TabID;
string controlKey = "Login";
string returnUrl = request.RawUrl;
if (returnUrl.IndexOf("?returnurl=", StringComparison.OrdinalIgnoreCase) > -1)
{
returnUrl = returnUrl.Substring(0, returnUrl.IndexOf("?returnurl=", StringComparison.OrdinalIgnoreCase));
}
returnUrl = HttpUtility.UrlEncode(returnUrl);
if (!Null.IsNull(portalSettings.LoginTabId) && string.IsNullOrEmpty(request.QueryString["override"]))
{
// user defined tab
controlKey = string.Empty;
tabId = portalSettings.LoginTabId;
}
else if (!Null.IsNull(portalSettings.HomeTabId))
{
// portal tab
tabId = portalSettings.HomeTabId;
}
// else current tab
return Globals.NavigateURL(tabId, controlKey, new string[] { "returnUrl=" + returnUrl });
}
throw new ArgumentNullException(portalSettings == null ? "portalSettings" : "request");
}
VB.NET
''' <summary>
''' Gets the login URL for the given portal from the current <paramref name="request"/>.
''' </summary>
''' <param name="portalSettings">The portal settings.</param>
''' <param name="request">The request.</param>
''' <returns>The URL for the login page</returns>
''' <exception cref="ArgumentNullException">if <paramref name="portalSettings"/> or <paramref name="request"/> is null.</exception>
Public Shared Function GetLoginUrl(portalSettings As PortalSettings, request As HttpRequest) As String
If portalSettings <> Nothing AndAlso request <> Nothing Then
Dim tabId As Integer = portalSettings.ActiveTab.TabID
Dim controlKey As String = "Login"
Dim returnUrl As String = request.RawUrl
If returnUrl.IndexOf("?returnurl=", StringComparison.OrdinalIgnoreCase) > -1 Then
returnUrl = returnUrl.Substring(0, returnUrl.IndexOf("?returnurl=", StringComparison.OrdinalIgnoreCase))
End If
returnUrl = HttpUtility.UrlEncode(returnUrl)
If Not Null.IsNull(portalSettings.LoginTabId) AndAlso String.IsNullOrEmpty(request.QueryString("override")) Then
' user defined tab
controlKey = String.Empty
tabId = portalSettings.LoginTabId
ElseIf Not Null.IsNull(portalSettings.HomeTabId) Then
' portal tab
tabId = portalSettings.HomeTabId
End If
' else current tab
Return Globals.NavigateURL(tabId, controlKey, New String() {"returnUrl=" + returnUrl})
End If
Throw New ArgumentNullException(If(portalSettings = Nothing, "portalSettings", "request"))
End Function
0
不确定DNN具体的东西,但你不能只用以下属性?
FormsAuthentication.LoginUrl
下面是有关MSDN页面:
0
您可以在CTL =登录查询字符串传递去默认的DNN登录页面,即使默认的网址是什么?已被修改..
string loginURL = string.Format("{0}://{1}/Default.aspx?ctl=login",
Request.Url.Scheme, Request.Url.Host);
Response.Redirect(loginURL);
3
Globals.LoginURL
public static string LoginURL(
string returnURL,
bool override
)
相关问题
- 1. 获取当前用户名,即在SharePoint 2010门户中登录
- 2. 获取TFS URL在门户网站
- 3. 如何登录网站获取当前位置?
- 4. 如何在asp.net mvc4中获取当前登录的用户名?
- 5. 如何在magento中获取当前登录客户的性别?
- 6. 如何在Windows中获取当前登录用户的域名?
- 7. 如何在wordpress中获取当前登录用户的角色?
- 8. 如何在Access VBA中获取当前登录的Windows用户?
- 9. 获取当前登录的Windows用户?
- 10. 如何显示当前登录网站的用户
- 11. 如何在ViewComponent中获取当前登录用户Asp.Net核心
- 12. 如何在joomla中获取当前用户登录信息
- 13. 如何获取当前登录的access_token?
- 14. 如何获取当前登录的用户的ID在pyrocms?
- 15. 客户门户网站中未登录的用户
- 16. 如何获取当前Windows登录用户的用户名?
- 17. 如何获取当前登录用户的用户对象
- 18. 如何获取Pinax中当前登录的用户?
- 19. pysvn:获取当前登录用户名
- 20. 获取当前登录用户
- 21. QT获取当前登录用户ID
- 22. Sails.js + Passport.js获取当前登录用户
- 23. 获取当前登录用户PHP
- 24. 获取当前登录用户asp.net
- 25. 的Windows Azure Portal登录到门户网站和接收错误“我们无法登录您到门户网站”
- 26. 远程登录到DotNetNuke网站
- 27. 无法登录到DotNetNuke网站
- 28. 如何在登录时获取当前用户密钥
- 29. 如何从URL中获取当前网页目录?
- 30. 如何获取登录到当前会话的用户的ID?
如果returnURL有查询字符串参数(基本上包含?),那么该方法返回当前页面:(。似乎可以在DNN 6和7中重现。 – Valentin 2016-02-12 09:55:57
其实登录地址如果没问题。具有查询字符串参数时,登录后的重定向不起作用。 – Valentin 2016-02-12 13:52:02