2012-03-26 13 views
7

Mam witryny MVC, zabezpieczona za pomocą [Autoryzuj] atrybutów, ale mają problem na stronie produkcyjnej, która używa Single Sign On po drugiej pary lub stron na różnych serwerach. Chcę za zasadę uznać autoryzację; czy istnieje sposób tymczasowego wyłączenia uwierzytelniania przez web.config, aby uzyskać dostęp do wszystkich lub niektórych akcji kontrolera z atrybutem autoryzacji bez logowania?Wyłącz uwierzytelniania w MVC przy użyciu web.config

EDIT:

Próbowałem dodanie następujących do pliku web.config:

<authentication mode="None" /> 

Ale powoduje to wszystkie działania ozdobione Autoryzacja Atrybut do renderowania puste strony. Działania bez Autoryzacja nadal pracować chociaż

+0

kocham go. Właśnie szukałem: uwierzytelnianie asp.net brak pustej strony i znalazłem to pytanie. Mój problem polegał na tym, że miałem autoryzację ustawioną na żadną, ale przypadkowo miałem resztki oświadczeń autoryzacji w jednym z moich kontrolerów. Twoje pytanie było moją odpowiedzią. Dzięki! – TTT

+0

I dlatego uwielbiam przepełnienia stosu :) Cieszę się, że pomógł - to certianly kazał mi drapać się po głowie, kiedy pierwszy raz go uderzyłem. – mutex

Odpowiedz

8

czy istnieje sposób, aby tymczasowo wyłączyć uwierzytelnianie przez web.config tak, że całość lub część działań regulatora, które mają Autoryzuj atrybut może być dostępne bez logowania?

Nie, nie jest to możliwe w domyślnej strukturze. Jestem całkiem pewny, że kod źródłowy MVC pod numerem AuthorizeAttribute podejmie próbę sprawdzenia, czy użytkownik jest zalogowany. Bez uwierzytelnionego użytkownika dostęp byłby odmawiany.

6

Użyj [AllowAnonymous], aby umożliwić konkretne działania w kontrolerze być wykorzystywane przez nieupoważnionych użytkowników.

0

W swojej Web.config Wykomentuj dziecka:

<authentication mode="Windows" /> 
<authorization> 
    <!--<deny users="?" />--> 
</authorization> 
0

można zezwolić wszystkim użytkownikom dostęp do systemu poprzez dodanie następujących w pliku web.config. Gdy kontroler sprawdzi autoryzację, użytkownik zostanie zweryfikowany, ponieważ zezwalasz wszystkim użytkownikom z dowolnym uwierzytelnianiem systemu Windows na dostęp do systemu.

<authentication mode="Windows" /> 
    <authorization> 
     <allow users="*"/> 
    <!--<deny users="?" />--> 
    </authorization> 
Powiązane problemy