好的,这个问题令我感到困惑。我有一个自定义类,我的所有页面都继承自
Public Class Page : Inherits Page
Private Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
'Display Admin Controls (Buttons) '
If User.Identity.IsAuthenticated Then
'do some stuff '
End If
End Sub
End Class
但由于某种原因,我收到了这个错误:
System.NullReferenceException:未将对象引用设置为对象的实例。
在这一行
If User.Identity.IsAuthenticated Then
这仅在IIS7中开始。我一直在IIS6中使用这个应用程序超过一年没有问题,直到我昨天迁移到IIS7才开始这个异常。
答案 0 :(得分:2)
尝试:
If User IsNot Nothing AndAlso
User.Identity IsNot Nothing AndAlso
User.Identity.IsAuthenticated Then
'Do stuff
End If
答案 1 :(得分:1)
您应该使用Request.IsAuthenticated而不是Page.User.Identity.IsAuthenticated。
If Request.IsAuthenticated Then
'Do stuff
End If
内部Request.IsAuthenticated将验证用户及其身份是否已设置(非空)。您可以在代码中执行相同的操作
答案 2 :(得分:0)
使用Request.IsAuthenticated代替。它检查空用户。请参阅What is the difference between HttpContext.Current.Request.IsAuthenticated and HttpContext.Current.User.Identity.IsAuthenticated?。
但是,目前还不清楚为什么迁移后行为会发生变化。