Infovark Underground

  • news
    • infoblog
    • underground
  • product
  • download
  • buy
  • support
  • about
  • WCF

    • WCF, WebHttp Binding, and Authentication

      21 Mar 2008 by Gordon / 13 Comments

      If you’re trying to build REST-enabled services with WCF, you’ll want to use the webHTTP Binding.

      This binding defaults to anonymous handling, so if you’re planning on doing any authorization you need to change the binding configuration.

      This took me ages to figure out, largely because the webHttp binding is new and not well documented.

      To change the binding to support NTLM or Windows authentication, add the following node to the system.servicemodel in your app.config:

      1. <bindings>
      2. <webHttpBinding>
      3. <binding name="varkBinding">
      4. <security mode="TransportCredentialOnly">
      5. <transport clientCredentialType="Ntlm"  />
      6. </security>
      7. </binding>
      8. </webHttpBinding>
      9. </bindings>

      Note that you can supply one of five values to the mode attribute: None, Basic, Digest Windows, NTLM, and Certificate.

      Once you’ve picked the one you want, in your service definition, specify your new binding from the bindingConfiguration attribute:

      1. <service behaviorConfiguration="SyndicationBehavior"
      2. name="Yourapp.Yourservice">
      3. <endpoint address="http://localhost:8000/url"
      4. behaviorConfiguration="SomeBehavior"
      5. binding="webHttpBinding" bindingConfiguration="varkBinding"
      6. contract="YourContract.IYourService" />
      7. </service>

      And all calls to your REST service should be made with a valid windows network identity.

      In your serviceCode, you can retrieve it from the System.ServiceModel namespace:

      1. ServiceSecurityContext.Current.WindowsIdentity

      Oh, and if you’re not comfortable with editing the XML files, or you’d like to explore the dizzying array of other available options in WCF, I also discovered the Microsoft Service Configuration Editor (possibly someone had discovered it before me. ) It lives at C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\SvcConfigEditor.exe. It gives you a simple(ish) visual way to edit WCF Configuration files.

      UPDATE: JustinJSmith over at The Cybertopian Chronicle points out that it’s even easier to invoke the config editor – you just right click on your app.config, and select “Edit WCF Configuration” (duh…)

      Continue Reading

    • Previous
    • 1
    • 2
    • 3
    • Categories

      • .NET (41)
      • AJAX (3)
      • Books (7)
      • HTML (9)
      • Infovark (8)
      • Programming (48)
      • REST (11)
      • SQL (3)
      • Testing (3)
      • Tools (13)
      • UI (3)
      • WCF (11)
      • Web Services (8)
      • WPF (4)
      • XML (4)
    • Archives

    • Get future articles


       

    • Blogroll

      • Ajaxian
      • Anne Van Kesteren
      • Brain.Save()
      • Coding Horror
      • Eric Sink
      • Joel Spolsky
      • John Resig
      • Mark Pilgrim
      • Raymond Chen
      • Scott Hansleman
      • Secret Geek
      • Steve Yegge
      • The Daily WTF
      • The Database Programmer
    • Meta

      • Log in
      • Entries RSS
      • Comments RSS
      • WordPress.org
  • Site map

    • News
    • Product
    • Download
    • Buy
    • Support
    • About
  • Recent Posts

    • Review: Brownfield Application Development in .NET
    • Using Modal Dialogs with a Splash Screen in WPF
    • Highlighting query terms in a WPF TextBlock
    • Getting XAML Hyperlink text to wrap
    • How to format the XAML Hyperlink NavigateUri
  • Twitter

    Copyright 2011 Infovark, Inc. All rights reserved.