WCF, ServiceSecurityContext.Current zwraca null

WCF, ServiceSecurityContext.Current zwraca null
krystianknowak
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 5 lat
  • Postów:50
0

Witam, mam pewien problem przy pobieraniu nazwy użytkownika w aplikacji WCF, pobieram ją z tej właściwości:

Kopiuj
ServiceSecurityContext.Current.PrimaryIdentity.Name

Właściwość Current klasy ServiceSecurityContext zawsze jest nullem, kłopotem jest to że aplikacja normalnie działa, bo pobieram ją z githuba od znajomego, nie mam też problemu z używaniem funkcji wcf'a, wszystkie zwracają dane tak jak trzeba, dane autoryzacyjne nie są inicjalizowane, nie mam pojęcia czemu, po stronie aplikacji klienckiej wszystko jest na pewno zrobione dobrze. Problem musi tkwić w ustawianiach iis'a albo jakichś certyfikatów.
Orientuje się ktoś w czym może tkwić problem? Bardzo istotna dla mnie sprawa, liczę na waszą pomoc.
Wrzucam też fragment configa, może w czymś pomoże.

Kopiuj
<binding name="basicHttpWiazanie" maxBufferSize="90000000"
          maxReceivedMessageSize="90000000">
          <security mode="TransportWithMessageCredential" />
 </binding>
Kopiuj
<service behaviorConfiguration="zachowanie" name="nazwa">
        <endpoint address="" binding="basicHttpBinding" bindingConfiguration="basicHttpWiazanie"
          name="" contract="kontrakt" />
        <endpoint address="mex" binding="mexHttpsBinding" bindingConfiguration=""
          contract="IMetadataExchange" />
        <host>
          <baseAddresses>
            <add baseAddress="adres" />
          </baseAddresses>
        </host>
      </service>
ClassicProgrammer
  • Rejestracja:około 9 lat
  • Ostatnio:dzień
  • Lokalizacja:Polska, Poznań
  • Postów:92
0

Dawno nie konfigurowałem WCF, możliwe że w tagach security powinien być jeszcze zdefiniowany message z clientCredentialType. Ale to raczej strzał, bardziej bym podejrzewał błąd w configu niż na IIS, podrzuć jeszcze link do tego gh i przyklad wywołania jaki masz jeszcze dla pewności że na na pewno wszystko jest dobrze :)

krystianknowak
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 5 lat
  • Postów:50
0
Kopiuj
client.ClientCredentials.UserName.UserName = user;
client.ClientCredentials.UserName.Password = pass;
client.ClientCredentials.ServiceCertificate.Authentication.CertificateValidationMode = System.ServiceModel.Security.X509CertificateValidationMode.None;

Nie chce grzebać w configu, zamysł jest taki żeby po pull'u wszystko działało bez większych problemów, a u niego wszystko działa, prawdopodobnie to problem z certyfikatem, totalnie nie wiem o co chodzi ale jestem w trakcie grzebania i zbierania informacji.

neves
  • Rejestracja:prawie 22 lata
  • Ostatnio:około 10 godzin
  • Lokalizacja:Kraków
  • Postów:1114
0

Z tego co książka do WCF twierdzi basicHttpBinding w trybie TransportWithMessageCredential, umożliwia jedynie uwierzytelnienie klienta za pomocą certyfikatu. także login i hasło nie powinny być w konfiguracji tylko certyfikat

title


edytowany 1x, ostatnio: neves

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.