2003我已在一个特定子文件夹上的一个站点上实施了表单身份验证。我的代码可以在我的开发机器上完美工作,但活动服务器上存在一个小问题。即使用户已成功登录,HttpContext.Current.Request.LogonUserIdentity.IsAuthenticated也会返回False
如果您浏览到管理子文件夹,如果您未通过身份验证,您将被重定向到登录页面。主页页脚还包含到登录页面的链接;当用户登录时,该链接是应该改变的链接管理页面:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim link As HtmlAnchor = FindControlIterative(Me, "Login")
If HttpContext.Current.Request.LogonUserIdentity.IsAuthenticated Then
link.InnerText = "Admin"
link.HRef = "/admin/default.aspx"
End If
End Sub
这工作我的开发PC上正常,但活的服务器上,IsAuthenticated()
返回FALSE,因而登录链接不会被管理员链接取代。但是,如果浏览到管理子文件夹,我可以正常访问内容;没有重定向到登录页面。
有什么想法?
供参考:它托管在运行在Hyper-V上的Windows 2003 VPS上。
Muhammad,我可以从同一工作组中的其他机器访问我的开发站点,并且此代码仍然有效。这也是在各种在线示例中推荐的。 – CJM 2011-04-10 19:55:18
+1 - 我没有像我应该的那样彻底阅读你的文章。我以前的评论的立场,但我没有发现,你提供了我最终遇到的解决方案,通过其他方式('Context.User.Identity.IsAuthenticated')。 – CJM 2011-04-10 20:37:19