ViewStateはhiddenで引き回されるため、比較的容易に改ざんが可能です。
例えば、他のユーザーのViewStateを何らかの手段で入手することで、そのユーザーしか見れないコンテンツが見れてしまう、といった問題が発生しえます。
対応方法
ViewStateにセッションIDを保存し、突き合わせすることで、ViewStateの改ざんを検知します。
修正点
以下のコードをページの生成時に実行することで、Asp.net側でセッションIDのViewStateへの保持と突合せが自動で行われます。
ViewStateUserKey = Session.SessionID;
自セッション外のViewStateに改ざんすると、以下のようなエラーが出力され、システムエラーとなります。
{System.Web.HttpException (0x80004005): viewstate MAC の検証が失敗しました。このアプリケーションが Web Farm またはクラスターによってホストされている場合、<machineKey> 構成が同一の validationKey と検証アルゴリズムを指定していることをご確認ください。AutoGenerate をクラスターで使用することはできません。
詳細については、http://go.microsoft.com/fwlink/?LinkID=314055 をご覧ください。 ---> System.Web.UI.ViewStateException: 無効な viewstate です。