RadComboBox LoadOnDemand, WCF and Windows Authentication

5 posts, 0 answers
  1. Charles
    Charles avatar
    21 posts
    Member since:
    Jan 2012

    Posted 11 Jul 2012 Link to this post

    I have a problem that I am having trouble finding a solution for:

    I have a web app using Windows Authentication and one of the forms has a RadComboBox control for which I want to populate by means of a WCF service call.

    I've configured everything according to the tutorial instructions, and that works fine. My problem is that I need to pass the user's Windows security credentials to the service call to extract the username of the user.

    When I configure the webHttpBinding to use Transport or TransportCredentialsOnly:

    <webHttpBinding>
            <binding name="webHttpBindingConfiguration" 
                     maxBufferPoolSize="2147483647" 
                     maxBufferSize="2147483647" 
                     maxReceivedMessageSize="2147483647">
              <readerQuotas maxDepth="2147483647" 
                            maxStringContentLength="2147483647"
                            maxArrayLength="2147483647" 
                            maxBytesPerRead="2147483647" 
                            maxNameTableCharCount="2147483647" />
              <security mode="TransportCredentialOnly">
                <transport clientCredentialType="Windows"></transport>
              </security>
            </binding>
    </webHttpBinding>

    the service call fails. Fidder2 shows a Interal Server Error (500) and:

    "No Proxy-Authorization Header is present."

    "No Authorization Header is present."

    I cannot find any guidance for using Windows Authentication for these service calls.

    If it is not possible to use Windows Authentication with these calls, can I intercept the RadComboBoxContext object and add an entry with the user's username before the call is made, so I might extract it in the service method?

    Your assistance is greatly appreciated.

    Charlie

  2. Charles
    Charles avatar
    21 posts
    Member since:
    Jan 2012

    Posted 11 Jul 2012 Link to this post

    Note: The most desirable solution would be to enable Windows Authentication for the service call. Anonymous access is frowned upon here.
  3. Cat Cheshire
    Cat Cheshire avatar
    128 posts
    Member since:
    Jun 2010

    Posted 17 Jul 2012 Link to this post

    You can enable the Anonymous Authentication on your application from IIS Manager -
    http://www.iis.net/ConfigReference/system.webServer/security/authentication/anonymousAuthentication
  4. Charles
    Charles avatar
    21 posts
    Member since:
    Jan 2012

    Posted 17 Jul 2012 Link to this post

    I was able to get what I needed via the context object.

    I still want to get this to work using Windows Authentication, if this is possible. Anonymous access is not a desirable solution.

    Also, the documentation for the RadListBox states that the process for using WCF to load the list box is the same, but is it really? Does the method still use the context object to pass parameters?

    Thanks,

    Charlie
  5. Genady Sergeev
    Admin
    Genady Sergeev avatar
    1600 posts

    Posted 20 Jul 2012 Link to this post

    Hi Charles,

    I suggest that you take a look at this SO thread describing how to set authorization header for windows authentication using JavaScript.

    As for the RadListBox WCF binding, yes, it uses context as well. Here is sample method that returns RadListBoxItemData:

    [OperationContract]
        public RadListBoxItemData[] LoadData(Dictionary<string, object> context)
    {
    }



    Regards,
    Genady Sergeev
    the Telerik team
    If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to their blog feed now.
Back to Top