2011-07-21 17 views
5

Domyślnie ustawienie klawisza komputera jest generowane automatycznie i dla każdej aplikacji (AutoGenerate, IsolateApps). MSDN stwierdza, że ​​klucz odszyfrowywania i klucz sprawdzania poprawności są oparte na identyfikatorze aplikacji WWW. Hostuję dwie witryny ASP.NET MVC 2 na moim serwerze IIS 7, ale okazało się, że klucz komputera jest taki sam. Zweryfikowałem to za pomocą refleksji, aby zobaczyć właściwość ValidationKeyInternal i DecryptionKeyInternal. Przetestowałem go również, generując plik cookie "token anty-fałszerstwa" w jednej witrynie i przekazując go do drugiej strony, a plik cookie można odczytać.Automatyczne generowanie kluczy maszyn w ASP.NET

Po okresie próbnym i błędzie stwierdziłem, że klucz zmieni się, jeśli zmieni się tożsamość puli aplikacji. Obie witryny mają te same klucze, ponieważ są uruchomione poświadczeniu usługi sieciowej. Po zmianie tożsamości puli aplikacji w jednej witrynie zaczynają się różne klucze sprawdzania poprawności/szyfrowania.

Jednak po wdrożeniu dwóch witryn na innym serwerze zawsze otrzymuję te same klucze komputera nawet po zmianie tożsamości puli aplikacji. Dwa serwery mają taką samą konfigurację sprzętu i oprogramowania.

Chciałbym wiedzieć, czy istnieje odniesienie do faktycznej logiki generowania klucza komputera w ustawieniach AutoGenerate, IsolateApps. W Internecie wiele artykułów mówi o ustawieniu tego samego klucza komputera w scenariuszu farmy internetowej. Ale napotkałem problem po przeciwnej stronie. Wydaje się, że generowanie klucza automatycznego aplikacji internetowej nie działa prawidłowo. Czy jest ktoś, kto ma ten sam problem wcześniej?

+0

To, co opisujesz, jest nietypowe. Z mojego doświadczenia wynika, że ​​działało jak w reklamie. Mam 2 aplikacje działające w tym samym pakiecie auth biletów do udostępniania puli aplikacji. Jeśli nie ustawię machinkey na taki sam, nie będą mogli dzielić biletów. –

+0

Nigdy nie myślałem, że to nie zadziała, dopóki nie napotkam problemu. Ból, muszę znaleźć wytłumaczenie tego, co się stało na dwóch serwerach. – intangible02

Odpowiedz

0

Czy masz ustawienie web.config, które może przesłonić ustawienia IIS? Może to być spowodowane tym, że jeśli mówisz serwerom, aby używały określonych kluczy, mogą to zrobić.

+0

Jeśli używam konsoli zarządzania IIS do zmiany ustawień, zmiana jest zachowywana w pliku web.config. Są spójne. Oznacza to również, że to, co widzę w konsoli zarządzania IIS, opiera się na skonsolidowanych wynikach hieharchy pliku konfiguracyjnego. Przy okazji zrobiłem test, udostępniając projekt na serwerze internetowym IIS i Visual Studio. – intangible02

Powiązane problemy