• 0

[ASP.Net] Validation of Postbacks..


Question

Hey guys, I just wanted to check if I need to do this. On my page I'm getting a variable passed via the query string (Request["id"]), and on page load I check to make sure that I'm allowed to access this particular ID.

When you push an asp.net submit button, does the browser resend the ID, or is it kept server side and as such I don't need to validate it again?

Thanks :)

Link to comment
https://www.neowin.net/forum/topic/607596-aspnet-validation-of-postbacks/
Share on other sites

13 answers to this question

Recommended Posts

  • 0
  Pc_Madness said:
Hey guys, I just wanted to check if I need to do this. On my page I'm getting a variable passed via the query string (Request["id"]), and on page load I check to make sure that I'm allowed to access this particular ID.

When you push an asp.net submit button, does the browser resend the ID, or is it kept server side and as such I don't need to validate it again?

Thanks :)

If it's in the URL, it'll be sent back with the request.

  • 0
  azcodemonkey said:
If it's in the URL, it'll be sent back with the request.

Not quite true as ASP.Net pages also perform Postbacks.

In the Page_Load event, I would add this code:

if (!Page.IsPostBack)
{
	   //do validation here and if ID is invalid disable the buttons or redirect
}

This code will only get executed when the page loads and not on postbacks because the query string will not change. If the user changes the query string, the url, then it will no longer be a post back and hence the validation code would fire again.

  • 0
  whoreman said:
If you rely on the querystring I highly recommend you validate it each time you want to access it otherwise what happens if a user changes this?

Yeah, but you should validate all user input regardless of how it's entered.

  • 0
  azcodemonkey said:
Yeah, it is true. The query string is sent back in postback as well as first load. How he validates it is beside the point.
  sbauer said:
Yup, it's true.

Seems like both of you don't understand ASP.Net Page architecutre. The url gets sent to the page when the page is first requested. After that, the url does not get sent because of PostBacks. Go ahead try it. Create a blank page and add a button. Set breakpoint in page load to see the query string collection. Next, view the page with a query string variable. Once the page loads, change the query string paramter value in the url and click the button to do a post back. You will see that the QueryString collection still has the old value.

So, you should validate the QueryString parameters in the Page_Load event handler when the page first loads, when IsPostBack is false as I have showed in my previous post.

Hope this helps.

  • 0
  Pc_Madness said:
Thanks guys. :) I think I might be lazy and use a static variable to hold it instead. :)

I hope you realize the implications of making a static variable. That variable will be SHARED among all the instances of that page class. So, if multiple users are using the same page, they will be sharing the same value. Security :o risk IMO.

  • 0
  amrinders87 said:
Seems like both of you don't understand ASP.Net Page architecutre. The url gets sent to the page when the page is first requested. After that, the url does not get sent because of PostBacks. Go ahead try it. Create a blank page and add a button. Set breakpoint in page load to see the query string collection. Next, view the page with a query string variable. Once the page loads, change the query string paramter value in the url and click the button to do a post back. You will see that the QueryString collection still has the old value.

So, you should validate the QueryString parameters in the Page_Load event handler when the page first loads, when IsPostBack is false as I have showed in my previous post.

Hope this helps.

My comment was the fact that querystring values are still sent via postback. I was responding to his response, not yours. I know the architecture well, but thanks for your concern. Of course changing the querystring in the URL doesn't apply when you hit the button as it's a local change.

  • 0
  sbauer said:
My comment was the fact that querystring values are still sent via postback. I was responding to his response, not yours. I know the architecture well, but thanks for your concern. Of course changing the querystring in the URL doesn't apply when you hit the button as it's a local change.

My bad, I should I guess I should have looked at your signature :laugh:

  • 0
  amrinders87 said:
I hope you realize the implications of making a static variable. That variable will be SHARED among all the instances of that page class. So, if multiple users are using the same page, they will be sharing the same value. Security :o risk IMO.

Argh. :( I thought it was a copy of the page per user. *sigh* I miss PHP. :(

  • 0
  Pc_Madness said:
Argh. :( I thought it was a copy of the page per user. *sigh* I miss PHP. :(

Well you have full control. Static variable is shared among all instances of that class. So if two users use the application at about the same time, there will be two instances of that class and both will be sharing that single variable.

But as I have said above, you can validate the query string in Page_Load event in if the if not PostBack. Afterwards, you can use it and you should be safe.

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • AMD brings datacenter-level AI to Windows PCs, runs Meta's 109B Llama lodel locally by Pradeep Viswanathan Earlier this year, during CES 2025, AMD announced the world's first AI PC processor that can run Meta's Llama 70B model locally. Today, AMD announced that the Ryzen AI MAX+ 395 processor, when paired with 128 GB of RAM on Windows, can now run Meta’s Llama 4 Scout 109B (17B active) with full vision and MCP support. This capability is enabled for the AMD Ryzen AI Max+ 395 processor with the new AMD Software: Adrenalin Edition 25.8.1 WHQL driver update. AMD claims that this processor can not only run Meta’s Llama 4 Scout but also supports a context length of 256,000 (Flash Attention ON, KV Cache Q8), which is useful for agentic workflows. AMD claims that the Llama 4 Scout 109B model was previously only possible on datacenter-grade hardware but is now available in thin and light PCs, thanks to its Variable Graphics Memory feature. Variable Graphics Memory is AMD's BIOS-level feature, introduced with the latest Ryzen AI 300 series processors, that enables users to reallocate a percentage of the system RAM to the integrated graphics. This unified memory architecture allows users to allocate unused system RAM as dedicated graphics memory. The AMD Ryzen AI Max+ processor is now available as an option for the following Windows PCs: ASUS ROG Flow Z13 Corsair AI Workstation 300 Framework Desktop HP ZBook Ultra G1a HP Z2 Mini G1a By enabling massive AI models to run locally, AMD is paving the way for more responsive, private, and capable AI applications on Windows PCs. As an Amazon Associate we earn from qualifying purchases.
    • You ARE old. Its not just a feeling.
    • Higher "Social Charges". I think that is a feel good phrase for 'Employee Deferred Compensation Charges". Then again, they use different wording in the "Old World." More precisely in American Accounting Lingo: "Mark to the Market Employee Differed Compensation Charges."
    • TikTok's "Add to Music App" feature gets support for another music streaming service by David Uzondu Image via Depositphotos.com TikTok's "Add to Music App" feature is getting support for another streaming service: YouTube Music. This comes a few months after the short-form video giant brought the feature to SoundCloud. "Add to Music App", if you have not heard of it, is a feature launched back in November 2023, initially for US and UK users, that makes saving music a lot easier. With this feature, users get an "Add Song" button next to the track name at the bottom of a TikTok video. When a customer first uses the feature, they can select their preferred streaming service from the available options, and this choice then becomes the default for all future one-tap saves (this can be changed anytime in the app's settings). The new YouTube Music integration means you can directly save the track to the streaming service with a single press. Users can also add a track from an artist's Sound Detail Page. When "Add to Music App" first appeared, the options were limited to Spotify and Amazon Music. Since then, TikTok has added Apple Music and Deezer. Each service gets a designated spot for the saved tracks, like Spotify's "Liked Songs" playlist. In YouTube Music's case, the song will land in a dedicated "TikTok Songs" playlist, so you do not have to go hunting for it later. TikTok claims that its "Add to Music App" function has resulted in over 1 billion saves globally since its wider rollout in 2024. On a related note, you probably are already aware of the current divest-or-ban issue TikTok's facing in the US. Howard Lutnick, the US Commerce secretary, recently stated in an interview with Fox News Sunday that President Trump loves the platform and sees it as "a good way to communicate with young people," but the platform's US operations must be handled by an American company, not Chinese.
    • 10 years of using end users as free-guineapigs to test half-baked garbage software...what an achievement 🎉
  • Recent Achievements

    • Week One Done
      andeyhawk65 earned a badge
      Week One Done
    • First Post
      Jake2530 earned a badge
      First Post
    • Explorer
      Deranox went up a rank
      Explorer
    • Week One Done
      John Volks earned a badge
      Week One Done
    • One Month Later
      enric earned a badge
      One Month Later
  • Popular Contributors

    1. 1
      +primortal
      673
    2. 2
      ATLien_0
      251
    3. 3
      Xenon
      176
    4. 4
      neufuse
      138
    5. 5
      +FloatingFatMan
      102
  • Tell a friend

    Love Neowin? Tell a friend!