Mam następujący scenariusz:przysięgłe WCF: Pierwsze kontekst Aktualny Zabezpieczenia
- Mam dane różnych użytkownika przechowywane w mojej bazy danych.
- Te dane wprowadzono za pośrednictwem aplikacji internetowej.
- Chcielibyśmy udostępnić te dane użytkownikowi za pośrednictwem serwisu internetowego, aby mógł on integrować dane z ich aplikacjami.
- Chcielibyśmy również przedstawić niektóre logiki biznesowej w odniesieniu do tych usług. Jako takie nie chcemy używać OData.
- Jest to aplikacja dla wielu dzierżawców, więc chcę tylko udostępnić im dane ich, a nie innym użytkownikom. Podobnie przedstawiona przez nas logika biznesowa powinna odnosić się do uwierzytelnionego użytkownika.
Chciałbym, aby użytkownik użył schematu OASIS do uwierzytelnienia w usłudze sieciowej - WCF już teraz pozwala na to po wyjęciu z pudełka, o ile rozumiem - lub może wydamy im certyfikaty do uwierzytelnienia z . Ten kawałek jeszcze nie został opracowany.
Tutaj jest trochę pseudo-kodu, jak ja sobie wyobrazić to będzie działać w ramach usługi:
function GetUsersData(id)
var user := Lookup User based on Username from Auth Context
var data := Get Data From Repository based on "user"
return data
end function
Dla scenariusza logiki biznesowej myślę, że będzie to wyglądać mniej więcej tak:
function PerformBusinessLogic(someData)
var user := Lookup User based on Username from Auth Context
var returnValue := Perform some logic based on supplied data
return returnValue
end function
Trochę tu chodzi o pobranie bieżącej nazwy użytkownika (lub informacji o certyfikacie w scenariuszu certyfikatu), z którą użytkownik został uwierzytelniony!
Czy WCF włączy nawet ten scenariusz? Jeśli nie, czy WSE3 to umożliwi?
Dzięki,
Fantastyczne, dzięki! Dokładnie o tym myślę, z jakiegoś powodu chyba zgubiłem to w dokumentacji. –
Próbuję też to zrobić. Chciałbym, aby działało na mojej lokalnej maszynie działającej od klienta testowego działającego również na moim komputerze lokalnym. Skonfigurowałem SSL i poprawną (myślę) konfigurację wiązania HTTPS. Widzę, że bieżący kontekst ma wartość NULL, a kontekst anonimowy, chociaż nie jest wartością NULL, nie ma wartości, których oczekiwałbym, ponieważ nazwa użytkownika jest pustym ciągiem. Czy są jakieś ustawienia IIS, które należy zmienić? – topwik
nagle ServiceSecurityContext.Current.PrimaryIdentity działa, nie ma już wartości NULL i widzę, że oczekiwana nazwa użytkownika jest wypluwana w liniach debugowania, ale debuger VS nie debuguje mojego serwera WWW mówiąc, że coś nie jest poprawnie skonfigurowane. – topwik