It is difficult to execute a successfull CSRF attack on an application using viewstate but not impossible. One way to do a succcessful CSRF attack on an application with _viewstate is
- Attacker is able to login to the application ( using own or aquired credentials)
- Visit the page (with most common or most useful variable states) against which she wants to create a CSRF attack for
- Copy the _Viewstate
- Insert this _viewstate in her attack page
- Send the attack page to the victim
- With some luck and good guessing the attack might just work
A solution to this has been introduced in 1.1. Instead of using just _viewstate you can use ViewStateUser-Key . This uses the use session key to create the state token which will be really difficult to guess or copy by the attacker.
I would still suggest implementing an indenpendent CSRF token mechanism for protection against CSRF in your application ( I know many will differ on this)