C# - How To Remove ViewState Entry From Page Without Using MVC Pattern
Dec 3, 2010I want to remove viewstate from page completely without using MVC pattern.
I am using c# 4.0
I want to remove viewstate from page completely without using MVC pattern.
I am using c# 4.0
Precondition: There's a web application that leverages ASP.NET security model. There's also an Active Directory (AD) integration component. It provides AD users and roles as if those are application's own users and roles. The relations like "is in role" between AD user and AD role are stored in AD domain, of course, but are cached by the web application.
Problem: Let's say AD user1 is a member of AD role1. When web application starts, it caches this relation. Now if the AD administrator removes user1 from role1 using AD console, the application doesn't know about this change - the cache entry is kept. This becomes a security hole because the role1 might have permissions the user1 should no longer have.
There are two сcontrary opinions how to solve this:
"Listen" to AD changes and trigger cache entry removal once the operation is detected on AD server - because we are responsible for correct AD component functioning Leave the cache untouched - because we didn't put the entry there and should not remove it either
Just spent a lot of time exorcising asp.net's large (but understandably useful) viewstate from an app, and i think it's worth sharing how it's done.
View 8 RepliesI have a site that features some pages which do not require any post-back functionality. They simply display static HTML and don't even have any associated code. However, since the Master Page has a <form runat="server"> tag which wraps all ContentPlaceHolders, the resulting HTML always contains the ViewState field, i.e:
<input
type="hidden"
id="__VIEWSTATE"
value="/wEPDwUKMjEwNDQyMTMxM2Rk0XhpfvawD3g+fsmZqmeRoPnb9kI="
/>
EDIT: I tried both variants of setting EnableViewState on page level with no luck at all:
<%@ Page Language="C#" EnableViewState="false" %>
<%@ Page Language="C#" EnableViewState="true" %>
I realize, that when decrypted, this value of the input field corresponds to the <form> tag which I cannot remove because it is on my master page. However, I would still like to remove the ViewState field for pages that only display static HTML. Is it possible?
I have a strange problem, my webform is loading twice.
when i debug i see ispostback is showing false for both times.
what happened to the first time load , and the viewstate.
What can remove all info from viewstate and making the ispostback again to false.
i am having real difficulty figuring out what is causing this problem.
I have been getting this error a lot lately with some of my users, and I had a couple of concerns with view state and I have read so many articles but I am still lost..
1. I use masterpage on all the pages and I need viewstate for some of the pages but..
There is a page where a user will fill out the information and then submit this data to a cgi server, and it is where I get most of the Client Disconnected errors, what would happen if I disable viewstate when they click on that button?
Now when a user browses from one page to another, does the view state from the previous page get deleted? If not how would I delete it?
Does the master page have its own viewstate? Would I be able to make sure none of items on my master page are using the viewstate?
I have a shopping cart page (Cart.aspx) that has a button that will (sometimes) post to a third party payment gateway, if payment is necessary. The payment gateway will process the payment and then do a silent post to my website (Order.aspx) so I can update the order status.
Order.aspx always throws an invalid viewstate error, even though viewstate is disabled on the page.
What's happening is that Cart.aspx (which has viewstate enabled) posts to the payment gateway, and the gateway will post it back as part of the silent post. Even though Order.aspx has viewstate disabled and validation disabled, it still tries to validate the __viewstate field it's being given.
I know setting EnableViewState=false will disable the rendering of the __viewstate field, but if another page provides the field, shouldn't it still skip validation? I tried calling ViewState.Clear() on the Page_Init event of Order.aspx, but ViewState is apparently empty. how to get around this? I don't want to disable ViewState on Cart.aspx (in some cases it may be necessary), but I can't figure out how to clear it on Order.aspx.
We have an ASP.NET MVC site that uses Entity Framework abstractions with Repository and UnitOfWork patterns. What I'm wondering is how others have implemented navigation of complex object graphs with these patterns. Let me give an example from one of our controllers:
[code]....
It's a registration process and pretty much everything hangs off the POCO class Person. In this case we're caching the person through the registration process. I've now started implementing the latter part of the registration process which requires access to data deeper in the object graph. Specifically DPA data which hangs off Legal inside Country.
The code above is just mapping out the model information into a simpler format for the ViewModel. My question is do you consider this fairly deep navigation of the graph good practice or would you abstract out the retrieval of the objects further down the graph into repositories?
Does anyone have a working pattern for converting a GET-POST-GET pattern to asny?
I'm encountering the following issues:
1. You cannot mix Sync and Async action methods SubmitForm(), SubmitFormAsync(bool? confirm), SubmitFormCompleted() ... (because the resolver gets all confused ... it doesn't use the HTTP verb to decide who to target. BTW: I think that's poor design, or a bug)
2. Renaming the get method name to something else eg: SubmitFormConfirmation(), SubmitFormAsync(bool? confirm), SubmitFormCompleted() would be very awkward if it works ... because you have to doctor the <form markup to specify an action name.
3. You cannot give them all async names SubmitFormAsync(), SubmitFormAsync(bool? confirm), submitFormCompleted(), because the call just keeps malfunctioning. It sometime even behaves as if you are requesting a delete of something.
Can someone give an insight from an actually working sample.
Now that the next version of ASP.NET MVC is being prototyped and previewed (ASP.NET MVC 3 Preview 1 came out a couple of weeks ago), I wonder if we should call the attention of the Core Dev team (S Hanselman, Phil Haack and all) to this "feature."there a easy/non tacky way of associating subdomains → areas?Something like:
[URL]Also, whats the best accepted design pattern in implementing PRG pattern in ASP.NET MVC? I guess it should also get some official loving in MVC 3.
I want to log some user actions in the appication I'm writing. I would like to call a sub routine from any page that takes a few parameters and inserts that information into my table.
I know how to do the database interaction, I'm just not real sure where I write the sub routine so that all pages have access to it.
When I redirect, it says Page not found. what is wrong with my ionic Entry? code behind
Response.Redirect(my site's url + "editques/" + "QuesID/" + QuesID + "/" + PID + "/" +QuesTypeID);
ionic entry
RewriteRule ^/myweb/edit/$ /myweb/Edit.aspx [I]
RewriteRule ^/myweb/edit/PID/([^/]*)$ /myweb/Edit.aspx?PID=$1 [I]
RewriteRule ^/myweb/edit/QuesID([^/]*)/([^/]*)/([^/]*)$ /myweb/Edit.aspx?QuesID=$1&PID=$2&QuesTypeID=$3 [I]
I am try to write code that will allow me to click an add button that will add unlimited text box entry on the same page.
example form:
Client Name: companyTxtBx
Address: addressTxtBx
City: cityTxtBx
State: stateTxtBx
Zip: zipTxtBx
<table>
Employee: empTxtBx
Employee Identification Number: empIDNumberTxtBX
Employee Address: empAddressTxtBx
Employee City: empCityTxtBx
Employee State: empStateTxtBx
Employee Zip: empZipTxtBx
Employee Phone Number: empPhNumberTxtBx
</table>
Button = Add another employee button that autopostback and insert empty textboxes that is listed in the table.
I'm not sure if this is the best category for this one... Might be more appropriate in the navigation section.I am curious as to the standard for redirecting users to a entry page on first accessing a website. In my case, I am working on an adults only website that requires a warning for users that the content is only appropriate for users over 18yo, as well as containing the scripts to activate several different monitor systems to prevent children from accessing the site.
I know I can use session_start to redirect and check for a cookie... but that seems heavy. Is there a better way? Something in IIS or... something I have not thought of yet?
I have designed a page where user can write messages and send within a group but i want that if they enter any special character like <>?#@ etc a msg should be displayed irrespective of the crashing of the page.
View 3 RepliesI am using forms authentication on ASP.NET. If I try to access a page by copying the query string and pasting it into the browser, it allows me access to the page. How can this be prevented? I want the user to always have to login.
View 4 RepliesWhere can I find additional information on adding a textbox to my login page where graphical characters are displayed and the user must retype those charaters into a textbox to complete the login process. If they incorrectly type the characters, another set of charaters is displayed. What is this technique formally called?Hope this is clearer than mud.
View 3 RepliesWhat ASP.NET page lifecycle event can I write code in to determine the size of the viewstate that being sent out? Also, is it possible to determine the size without parsing through the rendered HTML (like a property on the page object) or is parsing the only way?
What I'd like to do is log the sizes, specifically if they cross a certain threshold.
Now here is the weird thing. First i am running it locally on the built in vs2008 web server.I load my control in fine, do a postback from a linkbutton, locally on my machine it all works fine, no issue.However when it goes onto my host, it falls over with the message:
Failed to load viewstate. The control tree into which viewstate is being loaded must match the control tree that was used to save viewstate during the previous request.Now i also load controls dynamically and use postbacks and things in the admin area of the site...and that works fine, however my front end just keeps failing? See the code behing below:
[Code]....
I have problem getting values from viewstate in GetTopThemes.
<asp:ObjectDataSource
ID="sourceGetTopThemes"
runat="server"
TypeName="DBConnection"
SelectMethod="GetTopThemes"
EnableViewState="true"></asp:ObjectDataSource>
[Code]....
}
[Code]....
when the page is not Posted back, I saved all values in the viewstate.
I have a clarification on Viewstate. I have used the Viewstate machanisum to save the data in particular page. I have to get my viewstate data from one page to another page. How can i get the values? First let me know Is it possible? I have gone over many articles. i did not clear with it.I have an aother option for it. Thats Session. I need not use this techinque. Please provide more information about the viewstate..
View 3 Replieshow to remove master page prefix from control ID after rendering content page
i m using master page in my web application, i am using a java script that works on one of my div id and i am genrating div at run time using C# code, problem is that one one of my content page rendred a prefix ct100 attached on that div,
How can i remove that prefix from my server side control (assume panel) id
In the datapager, is there any way to hide the page number when the resultset is less than the pagesize. The number '1' is printed and it just looks like an orphan. I only want to show page numbers when the result set is larger than the pagesize
View 2 RepliesIs it possible to make the viewstate false of whole page including all controls at a time.I mean I don't want to set enableviewstate="false" for all controls..In the page directive of the aspx page I have made enableviewstate="false" but still viewstate of all the controls of the is enabled.. And what the EnableViewState="False"actually works within Page directive.
View 3 RepliesI stored a object in viewstate on Page. Now when i access the same viewsate object on usercontrol,it shows as null. I even tried creating the same viewstate with same name in usercontrol and page.Both holds different value. I understand that viewstate is a protected property. How does this thing implement in above scenerio or is there any other reason for this behaviour.
Edit:
Usercontrol is there in the page markup. I am not loading it dynamically. I have a page EditFacilityworkType.aspx. On page I have a usercontrol FacilityWorkTypeDetails.aspx(FacilityWorkTypeDetails1). Inside this usercontrol i have a user control Workflow.aspx(Workflow1)
Page_Load() of Page I am retrieving workflowdetails on page_load() of page.
FacilityWorktype facilityWorkType = facilityDetails.GetFacilityWorktypeDetail(SessionHelper.FacilityWorkTypeID);
ViewState["WorkFlow"] = facilityWorkType.FacilityWorkTypeWorkFlow
Inside usercontrol FacilityWorkTypeDetails.aspx. I have a property
public FacilityWorktype FacilityWorkTypeDetails
{
get
{
#region Fill FacilityWorktype
return GetEntityFromControl();
#endregion
}
set
{
PopulateControls(value);
}
}
Now i set this property in page load of page
FacilityWorkTypeDetails1.FacilityWorkTypeDetails = facilityWorkType;
Inside Workflow.aspx, I have a property
/// <summary>
/// Property to fill entity object from controls on this page
/// </summary>
public WorkFlow WorkFlowDetails
{
get
{
return GetEntityFromControls();
}
set
{
BindTranscriptionMethodDDL(ddlTranscMethod);
PopulateControls(value);
}
}
Now PopulateControls() of FacilityWorkTypeDetails1, i am setting property of workflow1
private void PopulateControls(FacilityWorktype value)
{
Workflow1.WorkFlowDetails = value.FacilityWorkTypeWorkFlow;
}
Now when i am retrieving values from
private WorkFlow GetEntityFromControls()
{
WorkFlow workFlow = (ViewState["WorkFlow"] as WorkFlow) ?? new WorkFlow();
//workFlow is null
}
So now inside this function workFlow is null. I want to ask,why is it null when i have set viewstate in page.