401 Not Authorized error when trying to authenticate XML web service

Discussion in 'ASP .Net' started by JeremyPollack, Jun 26, 2007.

  1. Here's the situation :

    I have the same ASP.NET 2.0 web application running on both Machine A
    and Machine B. On both machines, I have Integrated Windows
    Authentication turned on, and Anonymous Access turned off for the
    folder that contains the webservice .ASMX file. When I hit a certain
    page on Machine A, it will call the web service on Machine A, and then
    it will call the same web service on Machine B. Likewise, when I hit
    the same page on Machine B, it will call the web service on Machine B,
    and then it will call the same web service on Machine A.

    On both machines, I have an account set up for this web service to
    use. The username/password for Machine A is different from the
    username/password for Machine B. The machines are on different Active
    Directory domains.

    The websites on Machine A and Machine B use the same second-level
    domain, but have different subdomains - Machine A is local.mysite.com,
    Machine B is www.mysite.com.

    Both Machine A and Machine B are running Windows Server 2003.

    On the page that calls the webservice, I have a block of code that
    looks like this :

    try
    {//call the webservice on Machine A
    CacheMaintenance maintain = new
    CacheMaintenance("local.mysite.com");
    maintain.Credentials = new NetworkCredential("LocalLoginName",
    "LocalPassword", "LocalDomain");
    maintain.FlashTheCache();
    maintain.Dispose();
    }
    catch (Exception exp)
    {
    errors = "Could not flash local cache. " +
    General.UnrollException(exp) + " ";
    }

    try
    {//call the webservice on Machine B
    CacheMaintenance maintain = new
    CacheMaintenance("wwww.mysite.com");
    maintain.Credentials = new NetworkCredential("LiveLoginName",
    "LivePassword", "LiveDomain");
    maintain.FlashTheCache();
    maintain.Dispose();
    }
    catch (Exception exp)
    {
    errors += "Could not flash live cache. " +
    General.UnrollException(exp);
    }

    Machine A has no problem calling the webservice on Machine B.
    Likewise, Machine B has no problem calling the webservice on Machine
    A. However, when Machine A tries to call the webservice on Machine A,
    or when Machine B tries to call the webservice on Machine B, I get a
    "401 Not Authorized" error.

    Does anybody know why I'm getting this error?

    I've tried using Digest Authentication instead of Integrated Windows
    Authentication, and Digest Authentication seems to work fine.
    However, it seems that Digest Authentication is less secure then
    Integrated Windows Authentication, thus I would like to make
    Integrated Windows Authentication work.

    Also, I should mention that I've only had this problem with Windows
    Server 2003. I have not had this problem with Windows Server 2000.

    Thanks for your help.
     
    JeremyPollack, Jun 26, 2007
    #1
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.