Obecnie mam aplikację internetową MVC, która sprzedaje widżety. Użytkownik loguje się do naszego systemu, korzystając z uwierzytelniania formularzy, a następnie może wykonywać różne funkcje w zależności od grupy, do której przynależy (np. Złożenie zamówienia, wyświetlenie zamówienia, anulowanie zamówienia itp.)..NET WebApi Authentication
Zostaliśmy poproszeni o napisanie Api, które da stronom trzecim możliwość tworzenia i przeglądania zamówień w naszym systemie. Każda strona trzecia będzie miała własną nazwę użytkownika i będzie ograniczona do niektórych metod API w oparciu o grupę, do której należą.
Szukamy możliwości korzystania z Web Api jako mechanizmu dostarczania interfejsu API. Chcielibyśmy również móc wykorzystać ten api z naszej aplikacji internetowej MVC. Niestety, pojawiają się problemy z uwierzytelnianiem dla Web Api. Korzystając z usługi DelegatingHandler, zaimplementowaliśmy uwierzytelnianie podstawowe przez SSL dla naszej WebApi. Działa to doskonale dla naszych stron trzecich. Jednak próbując pobrać Api z naszej aplikacji MVC otrzymujemy błędy odmowy dostępu 401, ponieważ użytkownik został uwierzytelniony w aplikacji MVC za pomocą uwierzytelniania Forms, ale nie mamy możliwości przekazania tych poświadczeń do Web Api. Czy istnieje sposób przekazywania poświadczeń Forms Auth z naszej aplikacji MVC do aplikacji Web api?
IIS konfiguracja WebSite nazwie WidgetStore z dwóch aplikacji internetowych
- WidgetStore \ UI wykorzystywany jest uwierzytelnianie formularzy
- WidgetStore \ Api - wykorzystuje uwierzytelnianie podstawowe
Aby rozwiązać problem z formularzem/podstawowym autem, zasugeruję przeczytanie tego wspaniałego artykułu od Dominika Baiera: [Forms/Basic auth claim transformation] (http://leastprivilege.com/2012/10/24/ rozszerzenia-do-strony-apimvc-formsbasic-auth-sample-claim-transformation-and-ajax /) – Swell