2010-01-02 55 views
0

好了,所以这个问题我莫名其妙的一个实例。我有我所有的网页从如果User.Identity.IsAuthenticated则...对象引用不设置到对象

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: Object reference not set to an instance of an object.

在这条线

If User.Identity.IsAuthenticated Then 

这只开始发生在IIS7中。我一直在使用的IIS6此应用程序超过一年没有问题,这只是因为我昨天迁移到IIS7,这种异常开始。

+0

喜同,并在没有登录用户的唯一例外抛出? – keyboardP 2010-01-02 02:54:39

+0

web.config中如何配置身份验证和成员身份标签? – bendewey 2010-01-02 03:32:02

+0

这只发生在IIS7中。我一直在使用的IIS6此应用程序超过一年没有问题,这只是因为我昨天迁移到IIS7,这种异常开始。 – 2010-01-02 15:57:57

回答

2

尝试:

If User IsNot Nothing AndAlso 
    User.Identity IsNot Nothing AndAlso 
    User.Identity.IsAuthenticated Then 
    'Do stuff 
End If 
+0

谢谢约翰。在你回答之前,我使用完全相同的东西来解决它,但是我使用了嵌套的If语句而不是AndAlso。我想我会改变它,并且为了干净的因素。谢谢 – 2010-01-02 15:59:53

0

您应该使用Request.IsAuthenticated而不是Page.User.Identity.IsAuthenticated。

If Request.IsAuthenticated Then 'Do stuff End If

内部Request.IsAuthenticated将验证用户和它的身份设置(NOT NULL)。你可以做你的代码

相关问题