Polecam

.NET Blogs PL
CodeGuru


Tips & Tricks 08: The security validation for this page is invalid. Click Back in your Web

December 14, 2008 in categories: pro by Gutek

2

Problem jest znany i dość powszechnie udokumentowany. Jednak ten Tip jest bardziej dla mnie ;) Jak to zapiszę to będę o tym pamiętał. Chodzi o to, że jak długo nie widzę tego błędu to potem jak wyskakuje to nie wiem co zrobić ;)

Dla przypomnienia, błąd wygląda mniej więcej tak:

The security validation for this page is invalid. Click Back in your Webbrowser, refresh the page, and try your operation again.

A rozwiązania są dwa i dwa są proste:

1) Rozwiązanie pierwsze to po prostu opakować kod w:

try
{
    web.AllowUnsafeUpdates = true;
}
catch(Exception ex)
{
}
finally
{
    web.AllowUnsafeUpdates = false;
}

2) Drugie rozwiązanie to na stronie Central Administration, wybrać następującą opcję:Central Administration ---> Application Management ----> Web Application Settings --> "turn security validation off" – Rowzwiązanie nie zalecane!!




 

 

 

2 comments for "Tips & Tricks 08: The security validation for this page is invalid. Click Back in your Web"

  1. Bysza
    Bysza Says:

    Zalecane "catch(Exception ex) {}" ?!
    Czegoś tutaj nie rozumiem: dlaczego mamy połykać praktycznie wszystkie wyjątki?
    Sam try/finally nie wystarczy?

  2. Gutek
    Gutek Says:

    @Bysza

    ;)

    Wystarczy, to w kwesti przypomnienia bylo. Gdybym Ci tam napisal SPContentTypeSealedException to wiedzialbyś o co chodzi? nawet ja bym pewnie zapomniał a potem bym się zastanawiał czy to jest konieczne...

    Chciałem tylko zaznaczyć by wyłapywać wyjątki a dokładnie jak będe robił CopyPaste to zmienię wyjątek na konkretny a nie będe się męczył z dodaniem catch(){} co zawsze mnie osobiście drażni.

    Ale zeby nie bylo. AllowUnsafeUpdates moze wyzucic:

    catch(SPException spe)
    {
        // handle - jako pierwsze to nie jest Exception... to jest SharePoint Exception. Przed nim umieszczamy takie rzeczy jak SPContentTypeSealedException
    }
    catch (UnauthorizedAccessException uae)
    {
        // handle  
    }
    catch (InvalidCastException ice)
    {
        // handle
    }
    catch (NullReferenceException nre)
    {
        // handle
    }

    do tego trzeba pamiętać o wszystkich innych wyjątkach które może wywalić wasz kod Smile

    Gutek

Comments are closed

© 2008-2010 Jakub Gutkowski. Powered by BlogEngine.NET 1.5.1.14. Hosted on OrcsWeb.

Design