Mam aplikacji MVC4 Web, który używa uwierzytelniania systemu Windows, który jest w pliku web.config mam
<authentication mode="Windows" />
I to działa dobrze i wszystko jest w porządku.Użyj uwierzytelniania Anonymous w MVC4 na pojedynczym kontrolerze gdy cała aplikacja korzysta z systemu Windows Authenticaion
Jednak teraz potrzebuję kontrolera (w rzeczywistości kontrolera Web API), do którego należy uzyskać anonimowy dostęp z komponentu innego producenta. Problem polega na tym, że za każdym razem, gdy chcę wywołać tę metodę, żąda poświadczeń użytkownika.
Próbowałem wstawić atrybut AllowAnonymous
do kontrolera i metod, ale nie udało się.
[AllowAnonymous] public bool Get(string Called, string Calling, string CallID, int direction)
Sprawdziłem zarówno IIS Express i IIS 8 z uwierzytelnianiem anonimowy i uwierzytelniania systemu Windows jest włączona.
Wygląda na to, że uwierzytelnianie systemu Windows poprzedza inne uwierzytelnianie i nie można go zastąpić.
Czy istnieje sposób, aby to osiągnąć?
I nie sądzę, że to będzie pracować dla mnie. To ustawienie jest nadpisywane przez " , a strona internetowa nadal wymaga nazwy użytkownika i hasła, aby uzyskać do niego dostęp. Poza tym używam MVC i takie ustawienia konfiguracyjne w web.config mogą nie zawsze pomóc z powodu routingu. –
To działa dla mnie. Używam również '' z MVC3. Nie mam jednak żadnych specjalnych zasad routingu. Być może będziesz musiał zadzwonić ze ścieżką lokalizacji. –
Daje to drugą szansę - działa. Wygląda na to, że atrybut "AllowAnonymous" nie jest wystarczający w przypadku uwierzytelniania systemu Windows, a tag "location" jest tym, który działa najlepiej. Dzięki za wskazanie mi, co może być właściwym rozwiązaniem problemu! –