Solved

Object reference not set to an instance of an object. !ISPOSTBACK

Posted on 2009-07-16
3
392 Views
Last Modified: 2013-12-17
Hello,

I am getting the Object Reference message but I am confused because I did create an instance of the base class in the calling program " CheckProgramAccess CPA = new CheckProgramAccess()"

The error is being thrown within the .DLL at this statement:
"string TrackId = HttpContext.Current.Request.QueryString["track"].Substring(0,8) ;"

The Part 2 of the code is in a .dll which I am not allowed to change.  So my question is - two fold:
1). Why is this error happening since I did create an instance as demonstrated by CPA....and
2). How do I resolve this within my Part 1 code sniplet?

Thank you!
Part#1:
 protected void Page_Load(object sender, EventArgs e)
 
        {
        if (!IsPostBack)
            {
            CheckProgramAccess CPA = new CheckProgramAccess();
 
            if (!CPA.Authorized())
                {
                Response.Redirect("/asp/home.asp");
                }
            else
                {
 
                }
            }
=========
Part# 2:
 
public class CheckProgramAccess
	{
		public CheckProgramAccess()
		{
			//
			// TODO: Add constructor logic here
			//
		}
 
		public bool Authorized()
		{
			bool Authenticated = true;
			bool RtnCde = false ;
			string UpId = "" ;
			string TimeOut = "" ;
			string LogTime = "" ;
 
			try
			{
				string TrackId = HttpContext.Current.Request.QueryString["track"].Substring(0,8) ;
				string Program =  HttpContext.Current.Request.QueryString["program"].ToString() ;
	}
			catch(Exception ex)
			{
				string msg = ex.Message.ToString();
				Authenticated = false ;
			}
			return Authenticated;
		}

Open in new window

0
Comment
Question by:Muaadeeb
3 Comments
 
LVL 12

Accepted Solution

by:
GuitarRich earned 175 total points
ID: 24870383
The error is probably occuring because the Request.QueryString doesn't contain a "track" entry.
You should check for this before assigning it to a variable in the dll.
If you can't change the DLL - then check for it before the call to the DLL e.g

 protected void Page_Load(object sender, EventArgs e)
 
        {
        if (!IsPostBack)
            {
            if (Request.QueryString["track"] != null)
            {
                CheckProgramAccess CPA = new CheckProgramAccess();
 
                if (!CPA.Authorized())
                {
                    Response.Redirect("/asp/home.asp");
                }
                else
                {
 
                }
            }
        }

Open in new window

0
 
LVL 41

Assisted Solution

by:guru_sami
guru_sami earned 75 total points
ID: 24870413
looks you Request.QueryString["track"] is null...
When you are accessing you page ...are you passing queryString parameter track and program in the url....
What is the url of the Page?
0
 

Author Comment

by:Muaadeeb
ID: 24872218
Thanks guys you were right.   The query string was null and as a result the .DLL code had no idea what it was supposed to be referencing.


Thank you!

0

Featured Post

3 Use Cases for Connected Systems

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, testing some more, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Code works but it's slow 28 70
Javascript to set controls visibility 5 32
Printing 1 50
Calculate number of nights between two dates 5 18
A long time ago (May 2011), I have written an article showing you how to create a DLL using Visual Studio 2005 to be hosted in SQL Server 2005. That was valid at that time and it is still valid if you are still using these versions. You can still re…
This article shows how to deploy dynamic backgrounds to computers depending on the aspect ratio of display
This tutorial gives a high-level tour of the interface of Marketo (a marketing automation tool to help businesses track and engage prospective customers and drive them to purchase). You will see the main areas including Marketing Activities, Design …
Nobody understands Phishing better than an anti-spam company. That’s why we are providing Phishing Awareness Training to our customers. According to a report by Verizon, only 3% of targeted users report malicious emails to management. With compan…

808 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question