用户未登录时的 NullReference

NullReference when user is not logged in

当没有人登录时我无法访问页面。我想在用户 ID 匹配时显示一些按钮,如果没有人登录则只显示带有 FillPage() 的页面。

protected void Page_Load(object sender, EventArgs e)
    {
        FillPage();

        if (!String.IsNullOrWhiteSpace(Request.QueryString["id"]))
        {
            int id = Convert.ToInt32(Request.QueryString["id"]);
            JobReqModel model = new JobReqModel();
            JobDescriptions job = model.GetJob(id);

            if (job.PostedBy == Membership.GetUser().ProviderUserKey.ToString())
            {
                Button2.Visible = true;
                Button3.Visible = true;
                Button4.Visible = true;
                Lineseparator.Visible = true;
            }

            else
            {
                Button2.Visible = false;
                Button3.Visible = false;
                Button4.Visible = false;
                Lineseparator.Visible = false;
            }
        }

我在这一行得到了 NullReference

if (job.PostedBy == Membership.GetUser().ProviderUserKey.ToString())

我明白为什么是 NULL 但我如何避免这种情况?我尝试测试 ProviderUserKey 是否为 null,然后才使用 Fillpage。

只需添加一个空检查。

因为如果 GetUser() returns 为 null,您在尝试访问其 ProviderUserKey 属性.

时有一个 NRE
if (MemberShip.GetUser() != null && Membership.GetUser().ProviderUSerKey.ToString() == josb.PostedBy)