Remoting Problem

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Ron L

    #16
    Re: Remoting Problem

    Nicole
    I have been attempting to wade through the reference you gave me (it was
    the same reference that Gregory gave). What I want my application to be
    able to do is to try the credentials of the currently logged in user, and if
    that fails prompt the user for a username and password. Is this two
    different instances of using specific credentials, or is it one instance of
    using default credentials and one of using specific credentials?

    As to disabling automatic login (setting it to anonymous in Local
    Intranet, and trusted sites), I get the "You are not authorized to view this
    page" error page.

    Ron L



    "Nicole Calinoiu" <calinoiu REMOVETHIS AT gmail DOT com> wrote in message
    news:u%23B0XIhZ FHA.3876@TK2MSF TNGP12.phx.gbl. ..[color=blue]
    > "Ron L" <ronl@bogus.Add ress.com> wrote in message
    > news:uIT6LpgZFH A.3960@TK2MSFTN GP10.phx.gbl...[color=green]
    >> Nicole
    >> I guess I don't know how I am specifying the credentials on the client
    >> side.[/color]
    >
    > Then chances are very good that the client credentials aren't being
    > passed. See
    > http://msdn.microsoft.com/library/en...SecNetch11.asp
    > (particularly the "Passing Credentials for Authentication to Remote
    > Objects" section) for possible approaches.
    >
    >[color=green]
    >> As I said to Gregory, I was assuming that IIS handled the credentials as
    >> it does for ASP.[/color]
    >
    > IIS will perform the user authentication, but only if the user's
    > credentials are passed from the client machine, which is something that
    > IIS cannot do. The transparent passing of client credentials that you see
    > when using IE to browse a Windows-authenticated intranet site is because
    > IE is configured to pass those credentials without user intervention.
    > You'll need to make it possible for your client application to pass the
    > same credentials.
    >
    >[color=green]
    >> As to accessing the server, if I enter the following URL:
    >> http://localhost/dotNet/remotingtest/nwinfo.rem?wsdl
    >>
    >> I get an automatically generated web page listing the message names, port
    >> names, binding names, etc.[/color]
    >
    > What happens if you disable the intranet zone automatic logon in IE?
    >
    >[color=green]
    >>
    >> Ron L
    >>
    >>
    >>
    >> "Nicole Calinoiu" <calinoiu REMOVETHIS AT gmail DOT com> wrote in message
    >> news:%23yJ7ObgZ FHA.3712@TK2MSF TNGP09.phx.gbl. ..[color=darkred]
    >>> That looks like your server config file, which isn't what I was asking
    >>> about. On the client, how are you specifying the credentials that
    >>> should be sent to the server? (If you don't know what this question
    >>> means, chances are excellent that you're not sending any credentials,
    >>> which would explain the authentication problem. <g>) Also, could you
    >>> please check if you can access the server via IE?
    >>>
    >>>
    >>>
    >>> "Ron L" <ronl@bogus.Add ress.com> wrote in message
    >>> news:O%231BRRgZ FHA.3096@TK2MSF TNGP15.phx.gbl. ..
    >>>> Nicole
    >>>> Thanks for your response. I am using a web.config file that I have
    >>>> included at the end of this message.
    >>>>
    >>>> Ron L
    >>>>
    >>>> --------------------------Start
    >>>> Web.Config ------------------------------------------------
    >>>> <?xml version="1.0" encoding="utf-8" ?>
    >>>> <configuratio n>
    >>>>
    >>>> <system.web>
    >>>> <compilation defaultLanguage ="vb" debug="true" />
    >>>> <customErrors mode="RemoteOnl y" />
    >>>> <authenticati on mode="Windows" />
    >>>> <authorizatio n>
    >>>> <allow users="*" /> <!-- Allow all users -->
    >>>> <allow verbs="GET" users="*" />
    >>>> </authorization>
    >>>> <trace enabled="false" requestLimit="1 0" pageOutput="fal se"
    >>>> traceMode="Sort ByTime" localOnly="true " />
    >>>> <sessionState
    >>>> mode="Off"
    >>>> />
    >>>> <globalizatio n requestEncoding ="utf-8" responseEncodin g="utf-8" />
    >>>>
    >>>> <identity impersonate="tr ue" />
    >>>>
    >>>> </system.web>
    >>>>
    >>>> <appSettings>
    >>>> <!-- Trusted_Connect ion=yes -->
    >>>> <add key="Connection String"
    >>>> value="Provider =SQLOLEDB;Data Source=Dev2k;In itial
    >>>> Catalog=Northwi nd;Integrated Security=SSPI;T rusted_Connecti on=yes " />
    >>>> </appSettings>
    >>>>
    >>>> <system.runtime .remoting>
    >>>> <application>
    >>>> <!-- the following section defines the classes we're exposing to
    >>>> clients from this host -->
    >>>> <service>
    >>>> <wellknown mode="SingleCal l"
    >>>> objectUri = "NWInfo.rem "
    >>>> type = "RemotingTest.N WInfo, RemotingTest" />
    >>>>
    >>>> </service>
    >>>> <channels>
    >>>> <channel ref="http"
    >>>> useDefaultCrede ntials="true" />
    >>>> </channels>
    >>>> </application>
    >>>> </system.runtime. remoting>
    >>>> </configuration>
    >>>> -------------------------- End
    >>>> Web.Config -----------------------------------------------
    >>>> "Nicole Calinoiu" <calinoiu REMOVETHIS AT gmail DOT com> wrote in
    >>>> message news:uO2gxmfZFH A.3648@TK2MSFTN GP14.phx.gbl...
    >>>>> Have you set the remoting client to pass the default credentials to
    >>>>> the server? If so, how? Also, what happens when you attempt to
    >>>>> browse to the server URL in IE?
    >>>>>
    >>>>>
    >>>>> "Ron L" <ronl@bogus.Add ress.com> wrote in message
    >>>>> news:eg4E7IeZFH A.3220@TK2MSFTN GP14.phx.gbl...
    >>>>>> We are working on a distributed VB.Net application which will access
    >>>>>> a SQL database located on a known server. Each client will run on
    >>>>>> the user's local machine. To implement this, we are trying to use
    >>>>>> remoting for our access to the SQL server, with the remoting being
    >>>>>> via IIS. Since all of our users will have accounts in the destination
    >>>>>> domain, we want to have IIS handle the security for us and not allow
    >>>>>> anonymous. We have set this up with one of our development clients
    >>>>>> and servers, but when we try to connect we get the following error
    >>>>>> message:
    >>>>>> An unhandled exception of type 'System.Net.Web Exception'
    >>>>>> occurred in mscorlib.dll
    >>>>>>
    >>>>>> Additional information: the remote server returned an error:
    >>>>>> (401) Unauthorized.
    >>>>>>
    >>>>>>
    >>>>>>
    >>>>>> Our configuration is this:
    >>>>>> Component Running on
    >>>>>> Module1 the development machine
    >>>>>> RemotingTest IIS on the development machine
    >>>>>> NorthWind DB SQL Server on another server
    >>>>>>
    >>>>>> IIS is configured for Windows Authentication, and the directory with
    >>>>>> the RemotingTest object has "Script Source Access" set and the
    >>>>>> Execute Permissions are set to "Scripts and Executables". We have
    >>>>>> also tried with setting IIS to Allow Anonymous, which moves the error
    >>>>>> out to the SQL connection (with the error message of "can't make a
    >>>>>> connection for user NULL"). Even if anonymous did work, it would be
    >>>>>> a problem for us since the application we are using requires the
    >>>>>> username to be accessible.
    >>>>>>
    >>>>>> The SQL server is in a different domain from development machine,
    >>>>>> however a trust relationship exists between the two domains. We have
    >>>>>> verified that the trust works by opening the NorthWind database in
    >>>>>> Enterprise Manager on the development machine.
    >>>>>>
    >>>>>> Can anyone tell us what we are doing wrong here?
    >>>>>>
    >>>>>>
    >>>>>>
    >>>>>
    >>>>>
    >>>>
    >>>>
    >>>
    >>>[/color]
    >>
    >>[/color]
    >
    >[/color]


    Comment

    • Ron L

      #17
      Re: Remoting Problem

      Nicole
      I have been attempting to wade through the reference you gave me (it was
      the same reference that Gregory gave). What I want my application to be
      able to do is to try the credentials of the currently logged in user, and if
      that fails prompt the user for a username and password. Is this two
      different instances of using specific credentials, or is it one instance of
      using default credentials and one of using specific credentials?

      As to disabling automatic login (setting it to anonymous in Local
      Intranet, and trusted sites), I get the "You are not authorized to view this
      page" error page.

      Ron L



      "Nicole Calinoiu" <calinoiu REMOVETHIS AT gmail DOT com> wrote in message
      news:u%23B0XIhZ FHA.3876@TK2MSF TNGP12.phx.gbl. ..[color=blue]
      > "Ron L" <ronl@bogus.Add ress.com> wrote in message
      > news:uIT6LpgZFH A.3960@TK2MSFTN GP10.phx.gbl...[color=green]
      >> Nicole
      >> I guess I don't know how I am specifying the credentials on the client
      >> side.[/color]
      >
      > Then chances are very good that the client credentials aren't being
      > passed. See
      > http://msdn.microsoft.com/library/en...SecNetch11.asp
      > (particularly the "Passing Credentials for Authentication to Remote
      > Objects" section) for possible approaches.
      >
      >[color=green]
      >> As I said to Gregory, I was assuming that IIS handled the credentials as
      >> it does for ASP.[/color]
      >
      > IIS will perform the user authentication, but only if the user's
      > credentials are passed from the client machine, which is something that
      > IIS cannot do. The transparent passing of client credentials that you see
      > when using IE to browse a Windows-authenticated intranet site is because
      > IE is configured to pass those credentials without user intervention.
      > You'll need to make it possible for your client application to pass the
      > same credentials.
      >
      >[color=green]
      >> As to accessing the server, if I enter the following URL:
      >> http://localhost/dotNet/remotingtest/nwinfo.rem?wsdl
      >>
      >> I get an automatically generated web page listing the message names, port
      >> names, binding names, etc.[/color]
      >
      > What happens if you disable the intranet zone automatic logon in IE?
      >
      >[color=green]
      >>
      >> Ron L
      >>
      >>
      >>
      >> "Nicole Calinoiu" <calinoiu REMOVETHIS AT gmail DOT com> wrote in message
      >> news:%23yJ7ObgZ FHA.3712@TK2MSF TNGP09.phx.gbl. ..[color=darkred]
      >>> That looks like your server config file, which isn't what I was asking
      >>> about. On the client, how are you specifying the credentials that
      >>> should be sent to the server? (If you don't know what this question
      >>> means, chances are excellent that you're not sending any credentials,
      >>> which would explain the authentication problem. <g>) Also, could you
      >>> please check if you can access the server via IE?
      >>>
      >>>
      >>>
      >>> "Ron L" <ronl@bogus.Add ress.com> wrote in message
      >>> news:O%231BRRgZ FHA.3096@TK2MSF TNGP15.phx.gbl. ..
      >>>> Nicole
      >>>> Thanks for your response. I am using a web.config file that I have
      >>>> included at the end of this message.
      >>>>
      >>>> Ron L
      >>>>
      >>>> --------------------------Start
      >>>> Web.Config ------------------------------------------------
      >>>> <?xml version="1.0" encoding="utf-8" ?>
      >>>> <configuratio n>
      >>>>
      >>>> <system.web>
      >>>> <compilation defaultLanguage ="vb" debug="true" />
      >>>> <customErrors mode="RemoteOnl y" />
      >>>> <authenticati on mode="Windows" />
      >>>> <authorizatio n>
      >>>> <allow users="*" /> <!-- Allow all users -->
      >>>> <allow verbs="GET" users="*" />
      >>>> </authorization>
      >>>> <trace enabled="false" requestLimit="1 0" pageOutput="fal se"
      >>>> traceMode="Sort ByTime" localOnly="true " />
      >>>> <sessionState
      >>>> mode="Off"
      >>>> />
      >>>> <globalizatio n requestEncoding ="utf-8" responseEncodin g="utf-8" />
      >>>>
      >>>> <identity impersonate="tr ue" />
      >>>>
      >>>> </system.web>
      >>>>
      >>>> <appSettings>
      >>>> <!-- Trusted_Connect ion=yes -->
      >>>> <add key="Connection String"
      >>>> value="Provider =SQLOLEDB;Data Source=Dev2k;In itial
      >>>> Catalog=Northwi nd;Integrated Security=SSPI;T rusted_Connecti on=yes " />
      >>>> </appSettings>
      >>>>
      >>>> <system.runtime .remoting>
      >>>> <application>
      >>>> <!-- the following section defines the classes we're exposing to
      >>>> clients from this host -->
      >>>> <service>
      >>>> <wellknown mode="SingleCal l"
      >>>> objectUri = "NWInfo.rem "
      >>>> type = "RemotingTest.N WInfo, RemotingTest" />
      >>>>
      >>>> </service>
      >>>> <channels>
      >>>> <channel ref="http"
      >>>> useDefaultCrede ntials="true" />
      >>>> </channels>
      >>>> </application>
      >>>> </system.runtime. remoting>
      >>>> </configuration>
      >>>> -------------------------- End
      >>>> Web.Config -----------------------------------------------
      >>>> "Nicole Calinoiu" <calinoiu REMOVETHIS AT gmail DOT com> wrote in
      >>>> message news:uO2gxmfZFH A.3648@TK2MSFTN GP14.phx.gbl...
      >>>>> Have you set the remoting client to pass the default credentials to
      >>>>> the server? If so, how? Also, what happens when you attempt to
      >>>>> browse to the server URL in IE?
      >>>>>
      >>>>>
      >>>>> "Ron L" <ronl@bogus.Add ress.com> wrote in message
      >>>>> news:eg4E7IeZFH A.3220@TK2MSFTN GP14.phx.gbl...
      >>>>>> We are working on a distributed VB.Net application which will access
      >>>>>> a SQL database located on a known server. Each client will run on
      >>>>>> the user's local machine. To implement this, we are trying to use
      >>>>>> remoting for our access to the SQL server, with the remoting being
      >>>>>> via IIS. Since all of our users will have accounts in the destination
      >>>>>> domain, we want to have IIS handle the security for us and not allow
      >>>>>> anonymous. We have set this up with one of our development clients
      >>>>>> and servers, but when we try to connect we get the following error
      >>>>>> message:
      >>>>>> An unhandled exception of type 'System.Net.Web Exception'
      >>>>>> occurred in mscorlib.dll
      >>>>>>
      >>>>>> Additional information: the remote server returned an error:
      >>>>>> (401) Unauthorized.
      >>>>>>
      >>>>>>
      >>>>>>
      >>>>>> Our configuration is this:
      >>>>>> Component Running on
      >>>>>> Module1 the development machine
      >>>>>> RemotingTest IIS on the development machine
      >>>>>> NorthWind DB SQL Server on another server
      >>>>>>
      >>>>>> IIS is configured for Windows Authentication, and the directory with
      >>>>>> the RemotingTest object has "Script Source Access" set and the
      >>>>>> Execute Permissions are set to "Scripts and Executables". We have
      >>>>>> also tried with setting IIS to Allow Anonymous, which moves the error
      >>>>>> out to the SQL connection (with the error message of "can't make a
      >>>>>> connection for user NULL"). Even if anonymous did work, it would be
      >>>>>> a problem for us since the application we are using requires the
      >>>>>> username to be accessible.
      >>>>>>
      >>>>>> The SQL server is in a different domain from development machine,
      >>>>>> however a trust relationship exists between the two domains. We have
      >>>>>> verified that the trust works by opening the NorthWind database in
      >>>>>> Enterprise Manager on the development machine.
      >>>>>>
      >>>>>> Can anyone tell us what we are doing wrong here?
      >>>>>>
      >>>>>>
      >>>>>>
      >>>>>
      >>>>>
      >>>>
      >>>>
      >>>
      >>>[/color]
      >>
      >>[/color]
      >
      >[/color]


      Comment

      • Nicole Calinoiu

        #18
        Re: Remoting Problem

        "Ron L" <ronl@bogus.Add ress.com> wrote in message
        news:%23d6PdbhZ FHA.1424@TK2MSF TNGP15.phx.gbl. ..[color=blue]
        > Nicole
        > I have been attempting to wade through the reference you gave me (it
        > was the same reference that Gregory gave). What I want my application to
        > be able to do is to try the credentials of the currently logged in user,
        > and if that fails prompt the user for a username and password. Is this
        > two different instances of using specific credentials, or is it one
        > instance of using default credentials and one of using specific
        > credentials?[/color]

        If you want to allow falling back to user-provided credentials, you'll need
        to do at least two things:

        1. Use programmatic configuration of the credentials in your client
        application rather than specifying the credentials using channel attributes
        in the configuration file. An example of the programmatic approach is shown
        in the "Programmat ic configuration" section of the ".NET Remoting Security"
        reference.

        2. Adjust the client code in #1 to attempt to connect to the server and, if
        authentication fails, prompt the user for custom credentials then switch
        over to using those credentials. An example of setting the proxy to use
        such credentials is shown in the "Using specific credentials" section of the
        ".NET Remoting Security" reference.


        [color=blue]
        > As to disabling automatic login (setting it to anonymous in Local
        > Intranet, and trusted sites), I get the "You are not authorized to view
        > this page" error page.[/color]

        Good news since this means that the user credentials automatically provided
        by IE prior to disabling this behaviour were authenticating successfully and
        permitting access to the server.

        [color=blue]
        >
        > Ron L
        >
        >
        >
        > "Nicole Calinoiu" <calinoiu REMOVETHIS AT gmail DOT com> wrote in message
        > news:u%23B0XIhZ FHA.3876@TK2MSF TNGP12.phx.gbl. ..[color=green]
        >> "Ron L" <ronl@bogus.Add ress.com> wrote in message
        >> news:uIT6LpgZFH A.3960@TK2MSFTN GP10.phx.gbl...[color=darkred]
        >>> Nicole
        >>> I guess I don't know how I am specifying the credentials on the
        >>> client side.[/color]
        >>
        >> Then chances are very good that the client credentials aren't being
        >> passed. See
        >> http://msdn.microsoft.com/library/en...SecNetch11.asp
        >> (particularly the "Passing Credentials for Authentication to Remote
        >> Objects" section) for possible approaches.
        >>
        >>[color=darkred]
        >>> As I said to Gregory, I was assuming that IIS handled the credentials as
        >>> it does for ASP.[/color]
        >>
        >> IIS will perform the user authentication, but only if the user's
        >> credentials are passed from the client machine, which is something that
        >> IIS cannot do. The transparent passing of client credentials that you see
        >> when using IE to browse a Windows-authenticated intranet site is because
        >> IE is configured to pass those credentials without user intervention.
        >> You'll need to make it possible for your client application to pass the
        >> same credentials.
        >>
        >>[color=darkred]
        >>> As to accessing the server, if I enter the following URL:
        >>> http://localhost/dotNet/remotingtest/nwinfo.rem?wsdl
        >>>
        >>> I get an automatically generated web page listing the message names,
        >>> port names, binding names, etc.[/color]
        >>
        >> What happens if you disable the intranet zone automatic logon in IE?
        >>
        >>[color=darkred]
        >>>
        >>> Ron L
        >>>
        >>>
        >>>
        >>> "Nicole Calinoiu" <calinoiu REMOVETHIS AT gmail DOT com> wrote in
        >>> message news:%23yJ7ObgZ FHA.3712@TK2MSF TNGP09.phx.gbl. ..
        >>>> That looks like your server config file, which isn't what I was asking
        >>>> about. On the client, how are you specifying the credentials that
        >>>> should be sent to the server? (If you don't know what this question
        >>>> means, chances are excellent that you're not sending any credentials,
        >>>> which would explain the authentication problem. <g>) Also, could you
        >>>> please check if you can access the server via IE?
        >>>>
        >>>>
        >>>>
        >>>> "Ron L" <ronl@bogus.Add ress.com> wrote in message
        >>>> news:O%231BRRgZ FHA.3096@TK2MSF TNGP15.phx.gbl. ..
        >>>>> Nicole
        >>>>> Thanks for your response. I am using a web.config file that I have
        >>>>> included at the end of this message.
        >>>>>
        >>>>> Ron L
        >>>>>
        >>>>> --------------------------Start
        >>>>> Web.Config ------------------------------------------------
        >>>>> <?xml version="1.0" encoding="utf-8" ?>
        >>>>> <configuratio n>
        >>>>>
        >>>>> <system.web>
        >>>>> <compilation defaultLanguage ="vb" debug="true" />
        >>>>> <customErrors mode="RemoteOnl y" />
        >>>>> <authenticati on mode="Windows" />
        >>>>> <authorizatio n>
        >>>>> <allow users="*" /> <!-- Allow all users -->
        >>>>> <allow verbs="GET" users="*" />
        >>>>> </authorization>
        >>>>> <trace enabled="false" requestLimit="1 0" pageOutput="fal se"
        >>>>> traceMode="Sort ByTime" localOnly="true " />
        >>>>> <sessionState
        >>>>> mode="Off"
        >>>>> />
        >>>>> <globalizatio n requestEncoding ="utf-8" responseEncodin g="utf-8" />
        >>>>>
        >>>>> <identity impersonate="tr ue" />
        >>>>>
        >>>>> </system.web>
        >>>>>
        >>>>> <appSettings>
        >>>>> <!-- Trusted_Connect ion=yes -->
        >>>>> <add key="Connection String"
        >>>>> value="Provider =SQLOLEDB;Data Source=Dev2k;In itial
        >>>>> Catalog=Northwi nd;Integrated Security=SSPI;T rusted_Connecti on=yes " />
        >>>>> </appSettings>
        >>>>>
        >>>>> <system.runtime .remoting>
        >>>>> <application>
        >>>>> <!-- the following section defines the classes we're exposing to
        >>>>> clients from this host -->
        >>>>> <service>
        >>>>> <wellknown mode="SingleCal l"
        >>>>> objectUri = "NWInfo.rem "
        >>>>> type = "RemotingTest.N WInfo, RemotingTest" />
        >>>>>
        >>>>> </service>
        >>>>> <channels>
        >>>>> <channel ref="http"
        >>>>> useDefaultCrede ntials="true" />
        >>>>> </channels>
        >>>>> </application>
        >>>>> </system.runtime. remoting>
        >>>>> </configuration>
        >>>>> -------------------------- End
        >>>>> Web.Config -----------------------------------------------
        >>>>> "Nicole Calinoiu" <calinoiu REMOVETHIS AT gmail DOT com> wrote in
        >>>>> message news:uO2gxmfZFH A.3648@TK2MSFTN GP14.phx.gbl...
        >>>>>> Have you set the remoting client to pass the default credentials to
        >>>>>> the server? If so, how? Also, what happens when you attempt to
        >>>>>> browse to the server URL in IE?
        >>>>>>
        >>>>>>
        >>>>>> "Ron L" <ronl@bogus.Add ress.com> wrote in message
        >>>>>> news:eg4E7IeZFH A.3220@TK2MSFTN GP14.phx.gbl...
        >>>>>>> We are working on a distributed VB.Net application which will access
        >>>>>>> a SQL database located on a known server. Each client will run on
        >>>>>>> the user's local machine. To implement this, we are trying to use
        >>>>>>> remoting for our access to the SQL server, with the remoting being
        >>>>>>> via IIS. Since all of our users will have accounts in the
        >>>>>>> destination domain, we want to have IIS handle the security for us
        >>>>>>> and not allow anonymous. We have set this up with one of our
        >>>>>>> development clients and servers, but when we try to connect we get
        >>>>>>> the following error message:
        >>>>>>> An unhandled exception of type 'System.Net.Web Exception'
        >>>>>>> occurred in mscorlib.dll
        >>>>>>>
        >>>>>>> Additional information: the remote server returned an error:
        >>>>>>> (401) Unauthorized.
        >>>>>>>
        >>>>>>>
        >>>>>>>
        >>>>>>> Our configuration is this:
        >>>>>>> Component Running on
        >>>>>>> Module1 the development machine
        >>>>>>> RemotingTest IIS on the development machine
        >>>>>>> NorthWind DB SQL Server on another server
        >>>>>>>
        >>>>>>> IIS is configured for Windows Authentication, and the directory with
        >>>>>>> the RemotingTest object has "Script Source Access" set and the
        >>>>>>> Execute Permissions are set to "Scripts and Executables". We have
        >>>>>>> also tried with setting IIS to Allow Anonymous, which moves the
        >>>>>>> error out to the SQL connection (with the error message of "can't
        >>>>>>> make a connection for user NULL"). Even if anonymous did work, it
        >>>>>>> would be a problem for us since the application we are using
        >>>>>>> requires the username to be accessible.
        >>>>>>>
        >>>>>>> The SQL server is in a different domain from development machine,
        >>>>>>> however a trust relationship exists between the two domains. We
        >>>>>>> have verified that the trust works by opening the NorthWind database
        >>>>>>> in Enterprise Manager on the development machine.
        >>>>>>>
        >>>>>>> Can anyone tell us what we are doing wrong here?
        >>>>>>>
        >>>>>>>
        >>>>>>>
        >>>>>>
        >>>>>>
        >>>>>
        >>>>>
        >>>>
        >>>>
        >>>
        >>>[/color]
        >>
        >>[/color]
        >
        >[/color]


        Comment

        • Nicole Calinoiu

          #19
          Re: Remoting Problem

          "Ron L" <ronl@bogus.Add ress.com> wrote in message
          news:%23d6PdbhZ FHA.1424@TK2MSF TNGP15.phx.gbl. ..[color=blue]
          > Nicole
          > I have been attempting to wade through the reference you gave me (it
          > was the same reference that Gregory gave). What I want my application to
          > be able to do is to try the credentials of the currently logged in user,
          > and if that fails prompt the user for a username and password. Is this
          > two different instances of using specific credentials, or is it one
          > instance of using default credentials and one of using specific
          > credentials?[/color]

          If you want to allow falling back to user-provided credentials, you'll need
          to do at least two things:

          1. Use programmatic configuration of the credentials in your client
          application rather than specifying the credentials using channel attributes
          in the configuration file. An example of the programmatic approach is shown
          in the "Programmat ic configuration" section of the ".NET Remoting Security"
          reference.

          2. Adjust the client code in #1 to attempt to connect to the server and, if
          authentication fails, prompt the user for custom credentials then switch
          over to using those credentials. An example of setting the proxy to use
          such credentials is shown in the "Using specific credentials" section of the
          ".NET Remoting Security" reference.


          [color=blue]
          > As to disabling automatic login (setting it to anonymous in Local
          > Intranet, and trusted sites), I get the "You are not authorized to view
          > this page" error page.[/color]

          Good news since this means that the user credentials automatically provided
          by IE prior to disabling this behaviour were authenticating successfully and
          permitting access to the server.

          [color=blue]
          >
          > Ron L
          >
          >
          >
          > "Nicole Calinoiu" <calinoiu REMOVETHIS AT gmail DOT com> wrote in message
          > news:u%23B0XIhZ FHA.3876@TK2MSF TNGP12.phx.gbl. ..[color=green]
          >> "Ron L" <ronl@bogus.Add ress.com> wrote in message
          >> news:uIT6LpgZFH A.3960@TK2MSFTN GP10.phx.gbl...[color=darkred]
          >>> Nicole
          >>> I guess I don't know how I am specifying the credentials on the
          >>> client side.[/color]
          >>
          >> Then chances are very good that the client credentials aren't being
          >> passed. See
          >> http://msdn.microsoft.com/library/en...SecNetch11.asp
          >> (particularly the "Passing Credentials for Authentication to Remote
          >> Objects" section) for possible approaches.
          >>
          >>[color=darkred]
          >>> As I said to Gregory, I was assuming that IIS handled the credentials as
          >>> it does for ASP.[/color]
          >>
          >> IIS will perform the user authentication, but only if the user's
          >> credentials are passed from the client machine, which is something that
          >> IIS cannot do. The transparent passing of client credentials that you see
          >> when using IE to browse a Windows-authenticated intranet site is because
          >> IE is configured to pass those credentials without user intervention.
          >> You'll need to make it possible for your client application to pass the
          >> same credentials.
          >>
          >>[color=darkred]
          >>> As to accessing the server, if I enter the following URL:
          >>> http://localhost/dotNet/remotingtest/nwinfo.rem?wsdl
          >>>
          >>> I get an automatically generated web page listing the message names,
          >>> port names, binding names, etc.[/color]
          >>
          >> What happens if you disable the intranet zone automatic logon in IE?
          >>
          >>[color=darkred]
          >>>
          >>> Ron L
          >>>
          >>>
          >>>
          >>> "Nicole Calinoiu" <calinoiu REMOVETHIS AT gmail DOT com> wrote in
          >>> message news:%23yJ7ObgZ FHA.3712@TK2MSF TNGP09.phx.gbl. ..
          >>>> That looks like your server config file, which isn't what I was asking
          >>>> about. On the client, how are you specifying the credentials that
          >>>> should be sent to the server? (If you don't know what this question
          >>>> means, chances are excellent that you're not sending any credentials,
          >>>> which would explain the authentication problem. <g>) Also, could you
          >>>> please check if you can access the server via IE?
          >>>>
          >>>>
          >>>>
          >>>> "Ron L" <ronl@bogus.Add ress.com> wrote in message
          >>>> news:O%231BRRgZ FHA.3096@TK2MSF TNGP15.phx.gbl. ..
          >>>>> Nicole
          >>>>> Thanks for your response. I am using a web.config file that I have
          >>>>> included at the end of this message.
          >>>>>
          >>>>> Ron L
          >>>>>
          >>>>> --------------------------Start
          >>>>> Web.Config ------------------------------------------------
          >>>>> <?xml version="1.0" encoding="utf-8" ?>
          >>>>> <configuratio n>
          >>>>>
          >>>>> <system.web>
          >>>>> <compilation defaultLanguage ="vb" debug="true" />
          >>>>> <customErrors mode="RemoteOnl y" />
          >>>>> <authenticati on mode="Windows" />
          >>>>> <authorizatio n>
          >>>>> <allow users="*" /> <!-- Allow all users -->
          >>>>> <allow verbs="GET" users="*" />
          >>>>> </authorization>
          >>>>> <trace enabled="false" requestLimit="1 0" pageOutput="fal se"
          >>>>> traceMode="Sort ByTime" localOnly="true " />
          >>>>> <sessionState
          >>>>> mode="Off"
          >>>>> />
          >>>>> <globalizatio n requestEncoding ="utf-8" responseEncodin g="utf-8" />
          >>>>>
          >>>>> <identity impersonate="tr ue" />
          >>>>>
          >>>>> </system.web>
          >>>>>
          >>>>> <appSettings>
          >>>>> <!-- Trusted_Connect ion=yes -->
          >>>>> <add key="Connection String"
          >>>>> value="Provider =SQLOLEDB;Data Source=Dev2k;In itial
          >>>>> Catalog=Northwi nd;Integrated Security=SSPI;T rusted_Connecti on=yes " />
          >>>>> </appSettings>
          >>>>>
          >>>>> <system.runtime .remoting>
          >>>>> <application>
          >>>>> <!-- the following section defines the classes we're exposing to
          >>>>> clients from this host -->
          >>>>> <service>
          >>>>> <wellknown mode="SingleCal l"
          >>>>> objectUri = "NWInfo.rem "
          >>>>> type = "RemotingTest.N WInfo, RemotingTest" />
          >>>>>
          >>>>> </service>
          >>>>> <channels>
          >>>>> <channel ref="http"
          >>>>> useDefaultCrede ntials="true" />
          >>>>> </channels>
          >>>>> </application>
          >>>>> </system.runtime. remoting>
          >>>>> </configuration>
          >>>>> -------------------------- End
          >>>>> Web.Config -----------------------------------------------
          >>>>> "Nicole Calinoiu" <calinoiu REMOVETHIS AT gmail DOT com> wrote in
          >>>>> message news:uO2gxmfZFH A.3648@TK2MSFTN GP14.phx.gbl...
          >>>>>> Have you set the remoting client to pass the default credentials to
          >>>>>> the server? If so, how? Also, what happens when you attempt to
          >>>>>> browse to the server URL in IE?
          >>>>>>
          >>>>>>
          >>>>>> "Ron L" <ronl@bogus.Add ress.com> wrote in message
          >>>>>> news:eg4E7IeZFH A.3220@TK2MSFTN GP14.phx.gbl...
          >>>>>>> We are working on a distributed VB.Net application which will access
          >>>>>>> a SQL database located on a known server. Each client will run on
          >>>>>>> the user's local machine. To implement this, we are trying to use
          >>>>>>> remoting for our access to the SQL server, with the remoting being
          >>>>>>> via IIS. Since all of our users will have accounts in the
          >>>>>>> destination domain, we want to have IIS handle the security for us
          >>>>>>> and not allow anonymous. We have set this up with one of our
          >>>>>>> development clients and servers, but when we try to connect we get
          >>>>>>> the following error message:
          >>>>>>> An unhandled exception of type 'System.Net.Web Exception'
          >>>>>>> occurred in mscorlib.dll
          >>>>>>>
          >>>>>>> Additional information: the remote server returned an error:
          >>>>>>> (401) Unauthorized.
          >>>>>>>
          >>>>>>>
          >>>>>>>
          >>>>>>> Our configuration is this:
          >>>>>>> Component Running on
          >>>>>>> Module1 the development machine
          >>>>>>> RemotingTest IIS on the development machine
          >>>>>>> NorthWind DB SQL Server on another server
          >>>>>>>
          >>>>>>> IIS is configured for Windows Authentication, and the directory with
          >>>>>>> the RemotingTest object has "Script Source Access" set and the
          >>>>>>> Execute Permissions are set to "Scripts and Executables". We have
          >>>>>>> also tried with setting IIS to Allow Anonymous, which moves the
          >>>>>>> error out to the SQL connection (with the error message of "can't
          >>>>>>> make a connection for user NULL"). Even if anonymous did work, it
          >>>>>>> would be a problem for us since the application we are using
          >>>>>>> requires the username to be accessible.
          >>>>>>>
          >>>>>>> The SQL server is in a different domain from development machine,
          >>>>>>> however a trust relationship exists between the two domains. We
          >>>>>>> have verified that the trust works by opening the NorthWind database
          >>>>>>> in Enterprise Manager on the development machine.
          >>>>>>>
          >>>>>>> Can anyone tell us what we are doing wrong here?
          >>>>>>>
          >>>>>>>
          >>>>>>>
          >>>>>>
          >>>>>>
          >>>>>
          >>>>>
          >>>>
          >>>>
          >>>
          >>>[/color]
          >>
          >>[/color]
          >
          >[/color]


          Comment

          • Ron L

            #20
            Re: Remoting Problem

            Nicole
            I have found the code you referenced as an example:

            IDictionary channelProperti es;
            channelProperti es = ChannelServices .GetChannelSink Properties(prox y);
            channelProperti es ["credential s"] = CredentialCache .DefaultCredent ials;

            The thing I am not able to come up with is where the variable "proxy" is set
            and what is it? If I try making it be the RemotingInterfa ce object in the
            code below, I still get my (401) Unauthorized error. Can you clear this up
            for me?

            TIA
            Ron L

            ------------------------------ Code
            Stub -------------------------------------------
            Sub Main()
            Dim _NWInfo As iNWInfo
            Dim serverURL As String =
            "http://localhost/dotNET/RemotingTest/NWInfo.rem"

            Console.WriteLi ne("Welcome to the client application.")

            _NWInfo =
            CType(Activator .GetObject(GetT ype(RemotingInt erface.iNWInfo) , serverURL),
            RemotingInterfa ce.iNWInfo)

            Dim channelProperti es As IDictionary
            channelProperti es =
            ChannelServices .GetChannelSink Properties(_NWI nfo)
            channelProperti es("credentials ") =
            System.Net.Cred entialCache.Def aultCredentials
            Console.WriteLi ne(channelPrope rties("credenti als"))


            Console.WriteLi ne(_NWInfo.GetM essage)

            Dim dt As DataTable
            Dim row As DataRow
            dt = _NWInfo.GetMost ExpensiveProduc ts
            For Each row In dt.Rows
            Console.WriteLi ne(row.Item(0))
            Next
            Console.WriteLi ne("Press the <enter> key to exit.")
            Console.Read()
            End Sub
            ------------------------------\Code
            Stub -------------------------------------------



            "Nicole Calinoiu" <calinoiu REMOVETHIS AT gmail DOT com> wrote in message
            news:OE8hJrhZFH A.2788@TK2MSFTN GP12.phx.gbl...[color=blue]
            > "Ron L" <ronl@bogus.Add ress.com> wrote in message
            > news:%23d6PdbhZ FHA.1424@TK2MSF TNGP15.phx.gbl. ..[color=green]
            >> Nicole
            >> I have been attempting to wade through the reference you gave me (it
            >> was the same reference that Gregory gave). What I want my application to
            >> be able to do is to try the credentials of the currently logged in user,
            >> and if that fails prompt the user for a username and password. Is this
            >> two different instances of using specific credentials, or is it one
            >> instance of using default credentials and one of using specific
            >> credentials?[/color]
            >
            > If you want to allow falling back to user-provided credentials, you'll
            > need to do at least two things:
            >
            > 1. Use programmatic configuration of the credentials in your client
            > application rather than specifying the credentials using channel
            > attributes in the configuration file. An example of the programmatic
            > approach is shown in the "Programmat ic configuration" section of the ".NET
            > Remoting Security" reference.
            >
            > 2. Adjust the client code in #1 to attempt to connect to the server and,
            > if authentication fails, prompt the user for custom credentials then
            > switch over to using those credentials. An example of setting the proxy
            > to use such credentials is shown in the "Using specific credentials"
            > section of the ".NET Remoting Security" reference.
            >
            >
            >[color=green]
            >> As to disabling automatic login (setting it to anonymous in Local
            >> Intranet, and trusted sites), I get the "You are not authorized to view
            >> this page" error page.[/color]
            >
            > Good news since this means that the user credentials automatically
            > provided by IE prior to disabling this behaviour were authenticating
            > successfully and permitting access to the server.
            >
            >[color=green]
            >>
            >> Ron L
            >>
            >>
            >>
            >> "Nicole Calinoiu" <calinoiu REMOVETHIS AT gmail DOT com> wrote in message
            >> news:u%23B0XIhZ FHA.3876@TK2MSF TNGP12.phx.gbl. ..[color=darkred]
            >>> "Ron L" <ronl@bogus.Add ress.com> wrote in message
            >>> news:uIT6LpgZFH A.3960@TK2MSFTN GP10.phx.gbl...
            >>>> Nicole
            >>>> I guess I don't know how I am specifying the credentials on the
            >>>> client side.
            >>>
            >>> Then chances are very good that the client credentials aren't being
            >>> passed. See
            >>> http://msdn.microsoft.com/library/en...SecNetch11.asp
            >>> (particularly the "Passing Credentials for Authentication to Remote
            >>> Objects" section) for possible approaches.
            >>>
            >>>
            >>>> As I said to Gregory, I was assuming that IIS handled the credentials
            >>>> as it does for ASP.
            >>>
            >>> IIS will perform the user authentication, but only if the user's
            >>> credentials are passed from the client machine, which is something that
            >>> IIS cannot do. The transparent passing of client credentials that you
            >>> see when using IE to browse a Windows-authenticated intranet site is
            >>> because IE is configured to pass those credentials without user
            >>> intervention. You'll need to make it possible for your client
            >>> application to pass the same credentials.
            >>>
            >>>
            >>>> As to accessing the server, if I enter the following URL:
            >>>> http://localhost/dotNet/remotingtest/nwinfo.rem?wsdl
            >>>>
            >>>> I get an automatically generated web page listing the message names,
            >>>> port names, binding names, etc.
            >>>
            >>> What happens if you disable the intranet zone automatic logon in IE?
            >>>
            >>>
            >>>>
            >>>> Ron L
            >>>>
            >>>>
            >>>>
            >>>> "Nicole Calinoiu" <calinoiu REMOVETHIS AT gmail DOT com> wrote in
            >>>> message news:%23yJ7ObgZ FHA.3712@TK2MSF TNGP09.phx.gbl. ..
            >>>>> That looks like your server config file, which isn't what I was asking
            >>>>> about. On the client, how are you specifying the credentials that
            >>>>> should be sent to the server? (If you don't know what this question
            >>>>> means, chances are excellent that you're not sending any credentials,
            >>>>> which would explain the authentication problem. <g>) Also, could you
            >>>>> please check if you can access the server via IE?
            >>>>>
            >>>>>
            >>>>>
            >>>>> "Ron L" <ronl@bogus.Add ress.com> wrote in message
            >>>>> news:O%231BRRgZ FHA.3096@TK2MSF TNGP15.phx.gbl. ..
            >>>>>> Nicole
            >>>>>> Thanks for your response. I am using a web.config file that I
            >>>>>> have included at the end of this message.
            >>>>>>
            >>>>>> Ron L
            >>>>>>
            >>>>>> --------------------------Start
            >>>>>> Web.Config ------------------------------------------------
            >>>>>> <?xml version="1.0" encoding="utf-8" ?>
            >>>>>> <configuratio n>
            >>>>>>
            >>>>>> <system.web>
            >>>>>> <compilation defaultLanguage ="vb" debug="true" />
            >>>>>> <customErrors mode="RemoteOnl y" />
            >>>>>> <authenticati on mode="Windows" />
            >>>>>> <authorizatio n>
            >>>>>> <allow users="*" /> <!-- Allow all users -->
            >>>>>> <allow verbs="GET" users="*" />
            >>>>>> </authorization>
            >>>>>> <trace enabled="false" requestLimit="1 0" pageOutput="fal se"
            >>>>>> traceMode="Sort ByTime" localOnly="true " />
            >>>>>> <sessionState
            >>>>>> mode="Off"
            >>>>>> />
            >>>>>> <globalizatio n requestEncoding ="utf-8" responseEncodin g="utf-8" />
            >>>>>>
            >>>>>> <identity impersonate="tr ue" />
            >>>>>>
            >>>>>> </system.web>
            >>>>>>
            >>>>>> <appSettings>
            >>>>>> <!-- Trusted_Connect ion=yes -->
            >>>>>> <add key="Connection String"
            >>>>>> value="Provider =SQLOLEDB;Data Source=Dev2k;In itial
            >>>>>> Catalog=Northwi nd;Integrated Security=SSPI;T rusted_Connecti on=yes "
            >>>>>> />
            >>>>>> </appSettings>
            >>>>>>
            >>>>>> <system.runtime .remoting>
            >>>>>> <application>
            >>>>>> <!-- the following section defines the classes we're exposing to
            >>>>>> clients from this host -->
            >>>>>> <service>
            >>>>>> <wellknown mode="SingleCal l"
            >>>>>> objectUri = "NWInfo.rem "
            >>>>>> type = "RemotingTest.N WInfo, RemotingTest" />
            >>>>>>
            >>>>>> </service>
            >>>>>> <channels>
            >>>>>> <channel ref="http"
            >>>>>> useDefaultCrede ntials="true" />
            >>>>>> </channels>
            >>>>>> </application>
            >>>>>> </system.runtime. remoting>
            >>>>>> </configuration>
            >>>>>> -------------------------- End
            >>>>>> Web.Config -----------------------------------------------
            >>>>>> "Nicole Calinoiu" <calinoiu REMOVETHIS AT gmail DOT com> wrote in
            >>>>>> message news:uO2gxmfZFH A.3648@TK2MSFTN GP14.phx.gbl...
            >>>>>>> Have you set the remoting client to pass the default credentials to
            >>>>>>> the server? If so, how? Also, what happens when you attempt to
            >>>>>>> browse to the server URL in IE?
            >>>>>>>
            >>>>>>>
            >>>>>>> "Ron L" <ronl@bogus.Add ress.com> wrote in message
            >>>>>>> news:eg4E7IeZFH A.3220@TK2MSFTN GP14.phx.gbl...
            >>>>>>>> We are working on a distributed VB.Net application which will
            >>>>>>>> access a SQL database located on a known server. Each client will
            >>>>>>>> run on the user's local machine. To implement this, we are trying
            >>>>>>>> to use remoting for our access to the SQL server, with the remoting
            >>>>>>>> being via IIS. Since all of our users will have accounts in the
            >>>>>>>> destination domain, we want to have IIS handle the security for us
            >>>>>>>> and not allow anonymous. We have set this up with one of our
            >>>>>>>> development clients and servers, but when we try to connect we get
            >>>>>>>> the following error message:
            >>>>>>>> An unhandled exception of type 'System.Net.Web Exception'
            >>>>>>>> occurred in mscorlib.dll
            >>>>>>>>
            >>>>>>>> Additional information: the remote server returned an error:
            >>>>>>>> (401) Unauthorized.
            >>>>>>>>
            >>>>>>>>
            >>>>>>>>
            >>>>>>>> Our configuration is this:
            >>>>>>>> Component Running on
            >>>>>>>> Module1 the development machine
            >>>>>>>> RemotingTest IIS on the development machine
            >>>>>>>> NorthWind DB SQL Server on another server
            >>>>>>>>
            >>>>>>>> IIS is configured for Windows Authentication, and the directory
            >>>>>>>> with the RemotingTest object has "Script Source Access" set and the
            >>>>>>>> Execute Permissions are set to "Scripts and Executables". We have
            >>>>>>>> also tried with setting IIS to Allow Anonymous, which moves the
            >>>>>>>> error out to the SQL connection (with the error message of "can't
            >>>>>>>> make a connection for user NULL"). Even if anonymous did work, it
            >>>>>>>> would be a problem for us since the application we are using
            >>>>>>>> requires the username to be accessible.
            >>>>>>>>
            >>>>>>>> The SQL server is in a different domain from development machine,
            >>>>>>>> however a trust relationship exists between the two domains. We
            >>>>>>>> have verified that the trust works by opening the NorthWind
            >>>>>>>> database in Enterprise Manager on the development machine.
            >>>>>>>>
            >>>>>>>> Can anyone tell us what we are doing wrong here?
            >>>>>>>>
            >>>>>>>>
            >>>>>>>>
            >>>>>>>
            >>>>>>>
            >>>>>>
            >>>>>>
            >>>>>
            >>>>>
            >>>>
            >>>>
            >>>
            >>>[/color]
            >>
            >>[/color]
            >
            >[/color]


            Comment

            • Ron L

              #21
              Re: Remoting Problem

              Nicole
              I have found the code you referenced as an example:

              IDictionary channelProperti es;
              channelProperti es = ChannelServices .GetChannelSink Properties(prox y);
              channelProperti es ["credential s"] = CredentialCache .DefaultCredent ials;

              The thing I am not able to come up with is where the variable "proxy" is set
              and what is it? If I try making it be the RemotingInterfa ce object in the
              code below, I still get my (401) Unauthorized error. Can you clear this up
              for me?

              TIA
              Ron L

              ------------------------------ Code
              Stub -------------------------------------------
              Sub Main()
              Dim _NWInfo As iNWInfo
              Dim serverURL As String =
              "http://localhost/dotNET/RemotingTest/NWInfo.rem"

              Console.WriteLi ne("Welcome to the client application.")

              _NWInfo =
              CType(Activator .GetObject(GetT ype(RemotingInt erface.iNWInfo) , serverURL),
              RemotingInterfa ce.iNWInfo)

              Dim channelProperti es As IDictionary
              channelProperti es =
              ChannelServices .GetChannelSink Properties(_NWI nfo)
              channelProperti es("credentials ") =
              System.Net.Cred entialCache.Def aultCredentials
              Console.WriteLi ne(channelPrope rties("credenti als"))


              Console.WriteLi ne(_NWInfo.GetM essage)

              Dim dt As DataTable
              Dim row As DataRow
              dt = _NWInfo.GetMost ExpensiveProduc ts
              For Each row In dt.Rows
              Console.WriteLi ne(row.Item(0))
              Next
              Console.WriteLi ne("Press the <enter> key to exit.")
              Console.Read()
              End Sub
              ------------------------------\Code
              Stub -------------------------------------------



              "Nicole Calinoiu" <calinoiu REMOVETHIS AT gmail DOT com> wrote in message
              news:OE8hJrhZFH A.2788@TK2MSFTN GP12.phx.gbl...[color=blue]
              > "Ron L" <ronl@bogus.Add ress.com> wrote in message
              > news:%23d6PdbhZ FHA.1424@TK2MSF TNGP15.phx.gbl. ..[color=green]
              >> Nicole
              >> I have been attempting to wade through the reference you gave me (it
              >> was the same reference that Gregory gave). What I want my application to
              >> be able to do is to try the credentials of the currently logged in user,
              >> and if that fails prompt the user for a username and password. Is this
              >> two different instances of using specific credentials, or is it one
              >> instance of using default credentials and one of using specific
              >> credentials?[/color]
              >
              > If you want to allow falling back to user-provided credentials, you'll
              > need to do at least two things:
              >
              > 1. Use programmatic configuration of the credentials in your client
              > application rather than specifying the credentials using channel
              > attributes in the configuration file. An example of the programmatic
              > approach is shown in the "Programmat ic configuration" section of the ".NET
              > Remoting Security" reference.
              >
              > 2. Adjust the client code in #1 to attempt to connect to the server and,
              > if authentication fails, prompt the user for custom credentials then
              > switch over to using those credentials. An example of setting the proxy
              > to use such credentials is shown in the "Using specific credentials"
              > section of the ".NET Remoting Security" reference.
              >
              >
              >[color=green]
              >> As to disabling automatic login (setting it to anonymous in Local
              >> Intranet, and trusted sites), I get the "You are not authorized to view
              >> this page" error page.[/color]
              >
              > Good news since this means that the user credentials automatically
              > provided by IE prior to disabling this behaviour were authenticating
              > successfully and permitting access to the server.
              >
              >[color=green]
              >>
              >> Ron L
              >>
              >>
              >>
              >> "Nicole Calinoiu" <calinoiu REMOVETHIS AT gmail DOT com> wrote in message
              >> news:u%23B0XIhZ FHA.3876@TK2MSF TNGP12.phx.gbl. ..[color=darkred]
              >>> "Ron L" <ronl@bogus.Add ress.com> wrote in message
              >>> news:uIT6LpgZFH A.3960@TK2MSFTN GP10.phx.gbl...
              >>>> Nicole
              >>>> I guess I don't know how I am specifying the credentials on the
              >>>> client side.
              >>>
              >>> Then chances are very good that the client credentials aren't being
              >>> passed. See
              >>> http://msdn.microsoft.com/library/en...SecNetch11.asp
              >>> (particularly the "Passing Credentials for Authentication to Remote
              >>> Objects" section) for possible approaches.
              >>>
              >>>
              >>>> As I said to Gregory, I was assuming that IIS handled the credentials
              >>>> as it does for ASP.
              >>>
              >>> IIS will perform the user authentication, but only if the user's
              >>> credentials are passed from the client machine, which is something that
              >>> IIS cannot do. The transparent passing of client credentials that you
              >>> see when using IE to browse a Windows-authenticated intranet site is
              >>> because IE is configured to pass those credentials without user
              >>> intervention. You'll need to make it possible for your client
              >>> application to pass the same credentials.
              >>>
              >>>
              >>>> As to accessing the server, if I enter the following URL:
              >>>> http://localhost/dotNet/remotingtest/nwinfo.rem?wsdl
              >>>>
              >>>> I get an automatically generated web page listing the message names,
              >>>> port names, binding names, etc.
              >>>
              >>> What happens if you disable the intranet zone automatic logon in IE?
              >>>
              >>>
              >>>>
              >>>> Ron L
              >>>>
              >>>>
              >>>>
              >>>> "Nicole Calinoiu" <calinoiu REMOVETHIS AT gmail DOT com> wrote in
              >>>> message news:%23yJ7ObgZ FHA.3712@TK2MSF TNGP09.phx.gbl. ..
              >>>>> That looks like your server config file, which isn't what I was asking
              >>>>> about. On the client, how are you specifying the credentials that
              >>>>> should be sent to the server? (If you don't know what this question
              >>>>> means, chances are excellent that you're not sending any credentials,
              >>>>> which would explain the authentication problem. <g>) Also, could you
              >>>>> please check if you can access the server via IE?
              >>>>>
              >>>>>
              >>>>>
              >>>>> "Ron L" <ronl@bogus.Add ress.com> wrote in message
              >>>>> news:O%231BRRgZ FHA.3096@TK2MSF TNGP15.phx.gbl. ..
              >>>>>> Nicole
              >>>>>> Thanks for your response. I am using a web.config file that I
              >>>>>> have included at the end of this message.
              >>>>>>
              >>>>>> Ron L
              >>>>>>
              >>>>>> --------------------------Start
              >>>>>> Web.Config ------------------------------------------------
              >>>>>> <?xml version="1.0" encoding="utf-8" ?>
              >>>>>> <configuratio n>
              >>>>>>
              >>>>>> <system.web>
              >>>>>> <compilation defaultLanguage ="vb" debug="true" />
              >>>>>> <customErrors mode="RemoteOnl y" />
              >>>>>> <authenticati on mode="Windows" />
              >>>>>> <authorizatio n>
              >>>>>> <allow users="*" /> <!-- Allow all users -->
              >>>>>> <allow verbs="GET" users="*" />
              >>>>>> </authorization>
              >>>>>> <trace enabled="false" requestLimit="1 0" pageOutput="fal se"
              >>>>>> traceMode="Sort ByTime" localOnly="true " />
              >>>>>> <sessionState
              >>>>>> mode="Off"
              >>>>>> />
              >>>>>> <globalizatio n requestEncoding ="utf-8" responseEncodin g="utf-8" />
              >>>>>>
              >>>>>> <identity impersonate="tr ue" />
              >>>>>>
              >>>>>> </system.web>
              >>>>>>
              >>>>>> <appSettings>
              >>>>>> <!-- Trusted_Connect ion=yes -->
              >>>>>> <add key="Connection String"
              >>>>>> value="Provider =SQLOLEDB;Data Source=Dev2k;In itial
              >>>>>> Catalog=Northwi nd;Integrated Security=SSPI;T rusted_Connecti on=yes "
              >>>>>> />
              >>>>>> </appSettings>
              >>>>>>
              >>>>>> <system.runtime .remoting>
              >>>>>> <application>
              >>>>>> <!-- the following section defines the classes we're exposing to
              >>>>>> clients from this host -->
              >>>>>> <service>
              >>>>>> <wellknown mode="SingleCal l"
              >>>>>> objectUri = "NWInfo.rem "
              >>>>>> type = "RemotingTest.N WInfo, RemotingTest" />
              >>>>>>
              >>>>>> </service>
              >>>>>> <channels>
              >>>>>> <channel ref="http"
              >>>>>> useDefaultCrede ntials="true" />
              >>>>>> </channels>
              >>>>>> </application>
              >>>>>> </system.runtime. remoting>
              >>>>>> </configuration>
              >>>>>> -------------------------- End
              >>>>>> Web.Config -----------------------------------------------
              >>>>>> "Nicole Calinoiu" <calinoiu REMOVETHIS AT gmail DOT com> wrote in
              >>>>>> message news:uO2gxmfZFH A.3648@TK2MSFTN GP14.phx.gbl...
              >>>>>>> Have you set the remoting client to pass the default credentials to
              >>>>>>> the server? If so, how? Also, what happens when you attempt to
              >>>>>>> browse to the server URL in IE?
              >>>>>>>
              >>>>>>>
              >>>>>>> "Ron L" <ronl@bogus.Add ress.com> wrote in message
              >>>>>>> news:eg4E7IeZFH A.3220@TK2MSFTN GP14.phx.gbl...
              >>>>>>>> We are working on a distributed VB.Net application which will
              >>>>>>>> access a SQL database located on a known server. Each client will
              >>>>>>>> run on the user's local machine. To implement this, we are trying
              >>>>>>>> to use remoting for our access to the SQL server, with the remoting
              >>>>>>>> being via IIS. Since all of our users will have accounts in the
              >>>>>>>> destination domain, we want to have IIS handle the security for us
              >>>>>>>> and not allow anonymous. We have set this up with one of our
              >>>>>>>> development clients and servers, but when we try to connect we get
              >>>>>>>> the following error message:
              >>>>>>>> An unhandled exception of type 'System.Net.Web Exception'
              >>>>>>>> occurred in mscorlib.dll
              >>>>>>>>
              >>>>>>>> Additional information: the remote server returned an error:
              >>>>>>>> (401) Unauthorized.
              >>>>>>>>
              >>>>>>>>
              >>>>>>>>
              >>>>>>>> Our configuration is this:
              >>>>>>>> Component Running on
              >>>>>>>> Module1 the development machine
              >>>>>>>> RemotingTest IIS on the development machine
              >>>>>>>> NorthWind DB SQL Server on another server
              >>>>>>>>
              >>>>>>>> IIS is configured for Windows Authentication, and the directory
              >>>>>>>> with the RemotingTest object has "Script Source Access" set and the
              >>>>>>>> Execute Permissions are set to "Scripts and Executables". We have
              >>>>>>>> also tried with setting IIS to Allow Anonymous, which moves the
              >>>>>>>> error out to the SQL connection (with the error message of "can't
              >>>>>>>> make a connection for user NULL"). Even if anonymous did work, it
              >>>>>>>> would be a problem for us since the application we are using
              >>>>>>>> requires the username to be accessible.
              >>>>>>>>
              >>>>>>>> The SQL server is in a different domain from development machine,
              >>>>>>>> however a trust relationship exists between the two domains. We
              >>>>>>>> have verified that the trust works by opening the NorthWind
              >>>>>>>> database in Enterprise Manager on the development machine.
              >>>>>>>>
              >>>>>>>> Can anyone tell us what we are doing wrong here?
              >>>>>>>>
              >>>>>>>>
              >>>>>>>>
              >>>>>>>
              >>>>>>>
              >>>>>>
              >>>>>>
              >>>>>
              >>>>>
              >>>>
              >>>>
              >>>
              >>>[/color]
              >>
              >>[/color]
              >
              >[/color]


              Comment

              • Nicole Calinoiu

                #22
                Re: Remoting Problem

                I can't see any obvious problems in your code. Do you still get a 401 error
                if you try to reproduce the simple sample from
                http://msdn.microsoft.com/library/en...tinginiis.asp?
                If not, what happens if you modify the client to use programmatic
                configuration of the URL and credentials instead of reading these from the
                config file?



                "Ron L" <ronl@bogus.Add ress.com> wrote in message
                news:%23H31R5sZ FHA.3840@tk2msf tngp13.phx.gbl. ..[color=blue]
                > Nicole
                > I have found the code you referenced as an example:
                >
                > IDictionary channelProperti es;
                > channelProperti es = ChannelServices .GetChannelSink Properties(prox y);
                > channelProperti es ["credential s"] = CredentialCache .DefaultCredent ials;
                >
                > The thing I am not able to come up with is where the variable "proxy" is
                > set and what is it? If I try making it be the RemotingInterfa ce object in
                > the code below, I still get my (401) Unauthorized error. Can you clear
                > this up for me?
                >
                > TIA
                > Ron L
                >
                > ------------------------------ Code
                > Stub -------------------------------------------
                > Sub Main()
                > Dim _NWInfo As iNWInfo
                > Dim serverURL As String =
                > "http://localhost/dotNET/RemotingTest/NWInfo.rem"
                >
                > Console.WriteLi ne("Welcome to the client application.")
                >
                > _NWInfo =
                > CType(Activator .GetObject(GetT ype(RemotingInt erface.iNWInfo) , serverURL),
                > RemotingInterfa ce.iNWInfo)
                >
                > Dim channelProperti es As IDictionary
                > channelProperti es =
                > ChannelServices .GetChannelSink Properties(_NWI nfo)
                > channelProperti es("credentials ") =
                > System.Net.Cred entialCache.Def aultCredentials
                > Console.WriteLi ne(channelPrope rties("credenti als"))
                >
                >
                > Console.WriteLi ne(_NWInfo.GetM essage)
                >
                > Dim dt As DataTable
                > Dim row As DataRow
                > dt = _NWInfo.GetMost ExpensiveProduc ts
                > For Each row In dt.Rows
                > Console.WriteLi ne(row.Item(0))
                > Next
                > Console.WriteLi ne("Press the <enter> key to exit.")
                > Console.Read()
                > End Sub
                > ------------------------------\Code
                > Stub -------------------------------------------
                >
                >
                >
                > "Nicole Calinoiu" <calinoiu REMOVETHIS AT gmail DOT com> wrote in message
                > news:OE8hJrhZFH A.2788@TK2MSFTN GP12.phx.gbl...[color=green]
                >> "Ron L" <ronl@bogus.Add ress.com> wrote in message
                >> news:%23d6PdbhZ FHA.1424@TK2MSF TNGP15.phx.gbl. ..[color=darkred]
                >>> Nicole
                >>> I have been attempting to wade through the reference you gave me (it
                >>> was the same reference that Gregory gave). What I want my application
                >>> to be able to do is to try the credentials of the currently logged in
                >>> user, and if that fails prompt the user for a username and password. Is
                >>> this two different instances of using specific credentials, or is it one
                >>> instance of using default credentials and one of using specific
                >>> credentials?[/color]
                >>
                >> If you want to allow falling back to user-provided credentials, you'll
                >> need to do at least two things:
                >>
                >> 1. Use programmatic configuration of the credentials in your client
                >> application rather than specifying the credentials using channel
                >> attributes in the configuration file. An example of the programmatic
                >> approach is shown in the "Programmat ic configuration" section of the
                >> ".NET Remoting Security" reference.
                >>
                >> 2. Adjust the client code in #1 to attempt to connect to the server and,
                >> if authentication fails, prompt the user for custom credentials then
                >> switch over to using those credentials. An example of setting the proxy
                >> to use such credentials is shown in the "Using specific credentials"
                >> section of the ".NET Remoting Security" reference.
                >>
                >>
                >>[color=darkred]
                >>> As to disabling automatic login (setting it to anonymous in Local
                >>> Intranet, and trusted sites), I get the "You are not authorized to view
                >>> this page" error page.[/color]
                >>
                >> Good news since this means that the user credentials automatically
                >> provided by IE prior to disabling this behaviour were authenticating
                >> successfully and permitting access to the server.
                >>
                >>[color=darkred]
                >>>
                >>> Ron L
                >>>
                >>>
                >>>
                >>> "Nicole Calinoiu" <calinoiu REMOVETHIS AT gmail DOT com> wrote in
                >>> message news:u%23B0XIhZ FHA.3876@TK2MSF TNGP12.phx.gbl. ..
                >>>> "Ron L" <ronl@bogus.Add ress.com> wrote in message
                >>>> news:uIT6LpgZFH A.3960@TK2MSFTN GP10.phx.gbl...
                >>>>> Nicole
                >>>>> I guess I don't know how I am specifying the credentials on the
                >>>>> client side.
                >>>>
                >>>> Then chances are very good that the client credentials aren't being
                >>>> passed. See
                >>>> http://msdn.microsoft.com/library/en...SecNetch11.asp
                >>>> (particularly the "Passing Credentials for Authentication to Remote
                >>>> Objects" section) for possible approaches.
                >>>>
                >>>>
                >>>>> As I said to Gregory, I was assuming that IIS handled the credentials
                >>>>> as it does for ASP.
                >>>>
                >>>> IIS will perform the user authentication, but only if the user's
                >>>> credentials are passed from the client machine, which is something that
                >>>> IIS cannot do. The transparent passing of client credentials that you
                >>>> see when using IE to browse a Windows-authenticated intranet site is
                >>>> because IE is configured to pass those credentials without user
                >>>> intervention. You'll need to make it possible for your client
                >>>> application to pass the same credentials.
                >>>>
                >>>>
                >>>>> As to accessing the server, if I enter the following URL:
                >>>>> http://localhost/dotNet/remotingtest/nwinfo.rem?wsdl
                >>>>>
                >>>>> I get an automatically generated web page listing the message names,
                >>>>> port names, binding names, etc.
                >>>>
                >>>> What happens if you disable the intranet zone automatic logon in IE?
                >>>>
                >>>>
                >>>>>
                >>>>> Ron L
                >>>>>
                >>>>>
                >>>>>
                >>>>> "Nicole Calinoiu" <calinoiu REMOVETHIS AT gmail DOT com> wrote in
                >>>>> message news:%23yJ7ObgZ FHA.3712@TK2MSF TNGP09.phx.gbl. ..
                >>>>>> That looks like your server config file, which isn't what I was
                >>>>>> asking about. On the client, how are you specifying the credentials
                >>>>>> that should be sent to the server? (If you don't know what this
                >>>>>> question means, chances are excellent that you're not sending any
                >>>>>> credentials, which would explain the authentication problem. <g>)
                >>>>>> Also, could you please check if you can access the server via IE?
                >>>>>>
                >>>>>>
                >>>>>>
                >>>>>> "Ron L" <ronl@bogus.Add ress.com> wrote in message
                >>>>>> news:O%231BRRgZ FHA.3096@TK2MSF TNGP15.phx.gbl. ..
                >>>>>>> Nicole
                >>>>>>> Thanks for your response. I am using a web.config file that I
                >>>>>>> have included at the end of this message.
                >>>>>>>
                >>>>>>> Ron L
                >>>>>>>
                >>>>>>> --------------------------Start
                >>>>>>> Web.Config ------------------------------------------------
                >>>>>>> <?xml version="1.0" encoding="utf-8" ?>
                >>>>>>> <configuratio n>
                >>>>>>>
                >>>>>>> <system.web>
                >>>>>>> <compilation defaultLanguage ="vb" debug="true" />
                >>>>>>> <customErrors mode="RemoteOnl y" />
                >>>>>>> <authenticati on mode="Windows" />
                >>>>>>> <authorizatio n>
                >>>>>>> <allow users="*" /> <!-- Allow all users -->
                >>>>>>> <allow verbs="GET" users="*" />
                >>>>>>> </authorization>
                >>>>>>> <trace enabled="false" requestLimit="1 0" pageOutput="fal se"
                >>>>>>> traceMode="Sort ByTime" localOnly="true " />
                >>>>>>> <sessionState
                >>>>>>> mode="Off"
                >>>>>>> />
                >>>>>>> <globalizatio n requestEncoding ="utf-8" responseEncodin g="utf-8"
                >>>>>>> />
                >>>>>>>
                >>>>>>> <identity impersonate="tr ue" />
                >>>>>>>
                >>>>>>> </system.web>
                >>>>>>>
                >>>>>>> <appSettings>
                >>>>>>> <!-- Trusted_Connect ion=yes -->
                >>>>>>> <add key="Connection String"
                >>>>>>> value="Provider =SQLOLEDB;Data Source=Dev2k;In itial
                >>>>>>> Catalog=Northwi nd;Integrated Security=SSPI;T rusted_Connecti on=yes "
                >>>>>>> />
                >>>>>>> </appSettings>
                >>>>>>>
                >>>>>>> <system.runtime .remoting>
                >>>>>>> <application>
                >>>>>>> <!-- the following section defines the classes we're exposing to
                >>>>>>> clients from this host -->
                >>>>>>> <service>
                >>>>>>> <wellknown mode="SingleCal l"
                >>>>>>> objectUri = "NWInfo.rem "
                >>>>>>> type = "RemotingTest.N WInfo, RemotingTest" />
                >>>>>>>
                >>>>>>> </service>
                >>>>>>> <channels>
                >>>>>>> <channel ref="http"
                >>>>>>> useDefaultCrede ntials="true" />
                >>>>>>> </channels>
                >>>>>>> </application>
                >>>>>>> </system.runtime. remoting>
                >>>>>>> </configuration>
                >>>>>>> -------------------------- End
                >>>>>>> Web.Config -----------------------------------------------
                >>>>>>> "Nicole Calinoiu" <calinoiu REMOVETHIS AT gmail DOT com> wrote in
                >>>>>>> message news:uO2gxmfZFH A.3648@TK2MSFTN GP14.phx.gbl...
                >>>>>>>> Have you set the remoting client to pass the default credentials to
                >>>>>>>> the server? If so, how? Also, what happens when you attempt to
                >>>>>>>> browse to the server URL in IE?
                >>>>>>>>
                >>>>>>>>
                >>>>>>>> "Ron L" <ronl@bogus.Add ress.com> wrote in message
                >>>>>>>> news:eg4E7IeZFH A.3220@TK2MSFTN GP14.phx.gbl...
                >>>>>>>>> We are working on a distributed VB.Net application which will
                >>>>>>>>> access a SQL database located on a known server. Each client will
                >>>>>>>>> run on the user's local machine. To implement this, we are trying
                >>>>>>>>> to use remoting for our access to the SQL server, with the
                >>>>>>>>> remoting being via IIS. Since all of our users will have accounts
                >>>>>>>>> in the destination domain, we want to have IIS handle the security
                >>>>>>>>> for us and not allow anonymous. We have set this up with one of
                >>>>>>>>> our development clients and servers, but when we try to connect we
                >>>>>>>>> get the following error message:
                >>>>>>>>> An unhandled exception of type 'System.Net.Web Exception'
                >>>>>>>>> occurred in mscorlib.dll
                >>>>>>>>>
                >>>>>>>>> Additional information: the remote server returned an error:
                >>>>>>>>> (401) Unauthorized.
                >>>>>>>>>
                >>>>>>>>>
                >>>>>>>>>
                >>>>>>>>> Our configuration is this:
                >>>>>>>>> Component Running on
                >>>>>>>>> Module1 the development machine
                >>>>>>>>> RemotingTest IIS on the development machine
                >>>>>>>>> NorthWind DB SQL Server on another server
                >>>>>>>>>
                >>>>>>>>> IIS is configured for Windows Authentication, and the directory
                >>>>>>>>> with the RemotingTest object has "Script Source Access" set and
                >>>>>>>>> the Execute Permissions are set to "Scripts and Executables". We
                >>>>>>>>> have also tried with setting IIS to Allow Anonymous, which moves
                >>>>>>>>> the error out to the SQL connection (with the error message of
                >>>>>>>>> "can't make a connection for user NULL"). Even if anonymous did
                >>>>>>>>> work, it would be a problem for us since the application we are
                >>>>>>>>> using requires the username to be accessible.
                >>>>>>>>>
                >>>>>>>>> The SQL server is in a different domain from development machine,
                >>>>>>>>> however a trust relationship exists between the two domains. We
                >>>>>>>>> have verified that the trust works by opening the NorthWind
                >>>>>>>>> database in Enterprise Manager on the development machine.
                >>>>>>>>>
                >>>>>>>>> Can anyone tell us what we are doing wrong here?
                >>>>>>>>>
                >>>>>>>>>
                >>>>>>>>>
                >>>>>>>>
                >>>>>>>>
                >>>>>>>
                >>>>>>>
                >>>>>>
                >>>>>>
                >>>>>
                >>>>>
                >>>>
                >>>>
                >>>
                >>>[/color]
                >>
                >>[/color]
                >
                >[/color]


                Comment

                • Nicole Calinoiu

                  #23
                  Re: Remoting Problem

                  I can't see any obvious problems in your code. Do you still get a 401 error
                  if you try to reproduce the simple sample from
                  http://msdn.microsoft.com/library/en...tinginiis.asp?
                  If not, what happens if you modify the client to use programmatic
                  configuration of the URL and credentials instead of reading these from the
                  config file?



                  "Ron L" <ronl@bogus.Add ress.com> wrote in message
                  news:%23H31R5sZ FHA.3840@tk2msf tngp13.phx.gbl. ..[color=blue]
                  > Nicole
                  > I have found the code you referenced as an example:
                  >
                  > IDictionary channelProperti es;
                  > channelProperti es = ChannelServices .GetChannelSink Properties(prox y);
                  > channelProperti es ["credential s"] = CredentialCache .DefaultCredent ials;
                  >
                  > The thing I am not able to come up with is where the variable "proxy" is
                  > set and what is it? If I try making it be the RemotingInterfa ce object in
                  > the code below, I still get my (401) Unauthorized error. Can you clear
                  > this up for me?
                  >
                  > TIA
                  > Ron L
                  >
                  > ------------------------------ Code
                  > Stub -------------------------------------------
                  > Sub Main()
                  > Dim _NWInfo As iNWInfo
                  > Dim serverURL As String =
                  > "http://localhost/dotNET/RemotingTest/NWInfo.rem"
                  >
                  > Console.WriteLi ne("Welcome to the client application.")
                  >
                  > _NWInfo =
                  > CType(Activator .GetObject(GetT ype(RemotingInt erface.iNWInfo) , serverURL),
                  > RemotingInterfa ce.iNWInfo)
                  >
                  > Dim channelProperti es As IDictionary
                  > channelProperti es =
                  > ChannelServices .GetChannelSink Properties(_NWI nfo)
                  > channelProperti es("credentials ") =
                  > System.Net.Cred entialCache.Def aultCredentials
                  > Console.WriteLi ne(channelPrope rties("credenti als"))
                  >
                  >
                  > Console.WriteLi ne(_NWInfo.GetM essage)
                  >
                  > Dim dt As DataTable
                  > Dim row As DataRow
                  > dt = _NWInfo.GetMost ExpensiveProduc ts
                  > For Each row In dt.Rows
                  > Console.WriteLi ne(row.Item(0))
                  > Next
                  > Console.WriteLi ne("Press the <enter> key to exit.")
                  > Console.Read()
                  > End Sub
                  > ------------------------------\Code
                  > Stub -------------------------------------------
                  >
                  >
                  >
                  > "Nicole Calinoiu" <calinoiu REMOVETHIS AT gmail DOT com> wrote in message
                  > news:OE8hJrhZFH A.2788@TK2MSFTN GP12.phx.gbl...[color=green]
                  >> "Ron L" <ronl@bogus.Add ress.com> wrote in message
                  >> news:%23d6PdbhZ FHA.1424@TK2MSF TNGP15.phx.gbl. ..[color=darkred]
                  >>> Nicole
                  >>> I have been attempting to wade through the reference you gave me (it
                  >>> was the same reference that Gregory gave). What I want my application
                  >>> to be able to do is to try the credentials of the currently logged in
                  >>> user, and if that fails prompt the user for a username and password. Is
                  >>> this two different instances of using specific credentials, or is it one
                  >>> instance of using default credentials and one of using specific
                  >>> credentials?[/color]
                  >>
                  >> If you want to allow falling back to user-provided credentials, you'll
                  >> need to do at least two things:
                  >>
                  >> 1. Use programmatic configuration of the credentials in your client
                  >> application rather than specifying the credentials using channel
                  >> attributes in the configuration file. An example of the programmatic
                  >> approach is shown in the "Programmat ic configuration" section of the
                  >> ".NET Remoting Security" reference.
                  >>
                  >> 2. Adjust the client code in #1 to attempt to connect to the server and,
                  >> if authentication fails, prompt the user for custom credentials then
                  >> switch over to using those credentials. An example of setting the proxy
                  >> to use such credentials is shown in the "Using specific credentials"
                  >> section of the ".NET Remoting Security" reference.
                  >>
                  >>
                  >>[color=darkred]
                  >>> As to disabling automatic login (setting it to anonymous in Local
                  >>> Intranet, and trusted sites), I get the "You are not authorized to view
                  >>> this page" error page.[/color]
                  >>
                  >> Good news since this means that the user credentials automatically
                  >> provided by IE prior to disabling this behaviour were authenticating
                  >> successfully and permitting access to the server.
                  >>
                  >>[color=darkred]
                  >>>
                  >>> Ron L
                  >>>
                  >>>
                  >>>
                  >>> "Nicole Calinoiu" <calinoiu REMOVETHIS AT gmail DOT com> wrote in
                  >>> message news:u%23B0XIhZ FHA.3876@TK2MSF TNGP12.phx.gbl. ..
                  >>>> "Ron L" <ronl@bogus.Add ress.com> wrote in message
                  >>>> news:uIT6LpgZFH A.3960@TK2MSFTN GP10.phx.gbl...
                  >>>>> Nicole
                  >>>>> I guess I don't know how I am specifying the credentials on the
                  >>>>> client side.
                  >>>>
                  >>>> Then chances are very good that the client credentials aren't being
                  >>>> passed. See
                  >>>> http://msdn.microsoft.com/library/en...SecNetch11.asp
                  >>>> (particularly the "Passing Credentials for Authentication to Remote
                  >>>> Objects" section) for possible approaches.
                  >>>>
                  >>>>
                  >>>>> As I said to Gregory, I was assuming that IIS handled the credentials
                  >>>>> as it does for ASP.
                  >>>>
                  >>>> IIS will perform the user authentication, but only if the user's
                  >>>> credentials are passed from the client machine, which is something that
                  >>>> IIS cannot do. The transparent passing of client credentials that you
                  >>>> see when using IE to browse a Windows-authenticated intranet site is
                  >>>> because IE is configured to pass those credentials without user
                  >>>> intervention. You'll need to make it possible for your client
                  >>>> application to pass the same credentials.
                  >>>>
                  >>>>
                  >>>>> As to accessing the server, if I enter the following URL:
                  >>>>> http://localhost/dotNet/remotingtest/nwinfo.rem?wsdl
                  >>>>>
                  >>>>> I get an automatically generated web page listing the message names,
                  >>>>> port names, binding names, etc.
                  >>>>
                  >>>> What happens if you disable the intranet zone automatic logon in IE?
                  >>>>
                  >>>>
                  >>>>>
                  >>>>> Ron L
                  >>>>>
                  >>>>>
                  >>>>>
                  >>>>> "Nicole Calinoiu" <calinoiu REMOVETHIS AT gmail DOT com> wrote in
                  >>>>> message news:%23yJ7ObgZ FHA.3712@TK2MSF TNGP09.phx.gbl. ..
                  >>>>>> That looks like your server config file, which isn't what I was
                  >>>>>> asking about. On the client, how are you specifying the credentials
                  >>>>>> that should be sent to the server? (If you don't know what this
                  >>>>>> question means, chances are excellent that you're not sending any
                  >>>>>> credentials, which would explain the authentication problem. <g>)
                  >>>>>> Also, could you please check if you can access the server via IE?
                  >>>>>>
                  >>>>>>
                  >>>>>>
                  >>>>>> "Ron L" <ronl@bogus.Add ress.com> wrote in message
                  >>>>>> news:O%231BRRgZ FHA.3096@TK2MSF TNGP15.phx.gbl. ..
                  >>>>>>> Nicole
                  >>>>>>> Thanks for your response. I am using a web.config file that I
                  >>>>>>> have included at the end of this message.
                  >>>>>>>
                  >>>>>>> Ron L
                  >>>>>>>
                  >>>>>>> --------------------------Start
                  >>>>>>> Web.Config ------------------------------------------------
                  >>>>>>> <?xml version="1.0" encoding="utf-8" ?>
                  >>>>>>> <configuratio n>
                  >>>>>>>
                  >>>>>>> <system.web>
                  >>>>>>> <compilation defaultLanguage ="vb" debug="true" />
                  >>>>>>> <customErrors mode="RemoteOnl y" />
                  >>>>>>> <authenticati on mode="Windows" />
                  >>>>>>> <authorizatio n>
                  >>>>>>> <allow users="*" /> <!-- Allow all users -->
                  >>>>>>> <allow verbs="GET" users="*" />
                  >>>>>>> </authorization>
                  >>>>>>> <trace enabled="false" requestLimit="1 0" pageOutput="fal se"
                  >>>>>>> traceMode="Sort ByTime" localOnly="true " />
                  >>>>>>> <sessionState
                  >>>>>>> mode="Off"
                  >>>>>>> />
                  >>>>>>> <globalizatio n requestEncoding ="utf-8" responseEncodin g="utf-8"
                  >>>>>>> />
                  >>>>>>>
                  >>>>>>> <identity impersonate="tr ue" />
                  >>>>>>>
                  >>>>>>> </system.web>
                  >>>>>>>
                  >>>>>>> <appSettings>
                  >>>>>>> <!-- Trusted_Connect ion=yes -->
                  >>>>>>> <add key="Connection String"
                  >>>>>>> value="Provider =SQLOLEDB;Data Source=Dev2k;In itial
                  >>>>>>> Catalog=Northwi nd;Integrated Security=SSPI;T rusted_Connecti on=yes "
                  >>>>>>> />
                  >>>>>>> </appSettings>
                  >>>>>>>
                  >>>>>>> <system.runtime .remoting>
                  >>>>>>> <application>
                  >>>>>>> <!-- the following section defines the classes we're exposing to
                  >>>>>>> clients from this host -->
                  >>>>>>> <service>
                  >>>>>>> <wellknown mode="SingleCal l"
                  >>>>>>> objectUri = "NWInfo.rem "
                  >>>>>>> type = "RemotingTest.N WInfo, RemotingTest" />
                  >>>>>>>
                  >>>>>>> </service>
                  >>>>>>> <channels>
                  >>>>>>> <channel ref="http"
                  >>>>>>> useDefaultCrede ntials="true" />
                  >>>>>>> </channels>
                  >>>>>>> </application>
                  >>>>>>> </system.runtime. remoting>
                  >>>>>>> </configuration>
                  >>>>>>> -------------------------- End
                  >>>>>>> Web.Config -----------------------------------------------
                  >>>>>>> "Nicole Calinoiu" <calinoiu REMOVETHIS AT gmail DOT com> wrote in
                  >>>>>>> message news:uO2gxmfZFH A.3648@TK2MSFTN GP14.phx.gbl...
                  >>>>>>>> Have you set the remoting client to pass the default credentials to
                  >>>>>>>> the server? If so, how? Also, what happens when you attempt to
                  >>>>>>>> browse to the server URL in IE?
                  >>>>>>>>
                  >>>>>>>>
                  >>>>>>>> "Ron L" <ronl@bogus.Add ress.com> wrote in message
                  >>>>>>>> news:eg4E7IeZFH A.3220@TK2MSFTN GP14.phx.gbl...
                  >>>>>>>>> We are working on a distributed VB.Net application which will
                  >>>>>>>>> access a SQL database located on a known server. Each client will
                  >>>>>>>>> run on the user's local machine. To implement this, we are trying
                  >>>>>>>>> to use remoting for our access to the SQL server, with the
                  >>>>>>>>> remoting being via IIS. Since all of our users will have accounts
                  >>>>>>>>> in the destination domain, we want to have IIS handle the security
                  >>>>>>>>> for us and not allow anonymous. We have set this up with one of
                  >>>>>>>>> our development clients and servers, but when we try to connect we
                  >>>>>>>>> get the following error message:
                  >>>>>>>>> An unhandled exception of type 'System.Net.Web Exception'
                  >>>>>>>>> occurred in mscorlib.dll
                  >>>>>>>>>
                  >>>>>>>>> Additional information: the remote server returned an error:
                  >>>>>>>>> (401) Unauthorized.
                  >>>>>>>>>
                  >>>>>>>>>
                  >>>>>>>>>
                  >>>>>>>>> Our configuration is this:
                  >>>>>>>>> Component Running on
                  >>>>>>>>> Module1 the development machine
                  >>>>>>>>> RemotingTest IIS on the development machine
                  >>>>>>>>> NorthWind DB SQL Server on another server
                  >>>>>>>>>
                  >>>>>>>>> IIS is configured for Windows Authentication, and the directory
                  >>>>>>>>> with the RemotingTest object has "Script Source Access" set and
                  >>>>>>>>> the Execute Permissions are set to "Scripts and Executables". We
                  >>>>>>>>> have also tried with setting IIS to Allow Anonymous, which moves
                  >>>>>>>>> the error out to the SQL connection (with the error message of
                  >>>>>>>>> "can't make a connection for user NULL"). Even if anonymous did
                  >>>>>>>>> work, it would be a problem for us since the application we are
                  >>>>>>>>> using requires the username to be accessible.
                  >>>>>>>>>
                  >>>>>>>>> The SQL server is in a different domain from development machine,
                  >>>>>>>>> however a trust relationship exists between the two domains. We
                  >>>>>>>>> have verified that the trust works by opening the NorthWind
                  >>>>>>>>> database in Enterprise Manager on the development machine.
                  >>>>>>>>>
                  >>>>>>>>> Can anyone tell us what we are doing wrong here?
                  >>>>>>>>>
                  >>>>>>>>>
                  >>>>>>>>>
                  >>>>>>>>
                  >>>>>>>>
                  >>>>>>>
                  >>>>>>>
                  >>>>>>
                  >>>>>>
                  >>>>>
                  >>>>>
                  >>>>
                  >>>>
                  >>>
                  >>>[/color]
                  >>
                  >>[/color]
                  >
                  >[/color]


                  Comment

                  • Steve

                    #24
                    Re: Remoting Problem

                    A few pages ago theres a thread on what sounds like a similar problem that
                    was answered well. If you do a search for this string

                    "ASP.Net Impersonation Problem"

                    You should come up with it at the top of the list of results. The post talks
                    about credential forwarding, impersonation and authentication. Which I
                    believe, is what you're currently having problems with.

                    Hope that helps!

                    Steve.

                    "Ron L" wrote:
                    [color=blue]
                    > Nicole
                    > Thanks for your response. I am using a web.config file that I have
                    > included at the end of this message.
                    >
                    > Ron L
                    >
                    > --------------------------Start
                    > Web.Config ------------------------------------------------
                    > <?xml version="1.0" encoding="utf-8" ?>
                    > <configuratio n>
                    >
                    > <system.web>
                    > <compilation defaultLanguage ="vb" debug="true" />
                    > <customErrors mode="RemoteOnl y" />
                    > <authenticati on mode="Windows" />
                    > <authorizatio n>
                    > <allow users="*" /> <!-- Allow all users -->
                    > <allow verbs="GET" users="*" />
                    > </authorization>
                    > <trace enabled="false" requestLimit="1 0" pageOutput="fal se"
                    > traceMode="Sort ByTime" localOnly="true " />
                    > <sessionState
                    > mode="Off"
                    > />
                    > <globalizatio n requestEncoding ="utf-8" responseEncodin g="utf-8" />
                    >
                    > <identity impersonate="tr ue" />
                    >
                    > </system.web>
                    >
                    > <appSettings>
                    > <!-- Trusted_Connect ion=yes -->
                    > <add key="Connection String"
                    > value="Provider =SQLOLEDB;Data Source=Dev2k;In itial
                    > Catalog=Northwi nd;Integrated Security=SSPI;T rusted_Connecti on=yes " />
                    > </appSettings>
                    >
                    > <system.runtime .remoting>
                    > <application>
                    > <!-- the following section defines the classes we're exposing to clients
                    > from this host -->
                    > <service>
                    > <wellknown mode="SingleCal l"
                    > objectUri = "NWInfo.rem "
                    > type = "RemotingTest.N WInfo, RemotingTest" />
                    >
                    > </service>
                    > <channels>
                    > <channel ref="http"
                    > useDefaultCrede ntials="true" />
                    > </channels>
                    > </application>
                    > </system.runtime. remoting>
                    > </configuration>
                    > -------------------------- End
                    > Web.Config -----------------------------------------------
                    > "Nicole Calinoiu" <calinoiu REMOVETHIS AT gmail DOT com> wrote in message
                    > news:uO2gxmfZFH A.3648@TK2MSFTN GP14.phx.gbl...[color=green]
                    > > Have you set the remoting client to pass the default credentials to the
                    > > server? If so, how? Also, what happens when you attempt to browse to the
                    > > server URL in IE?
                    > >
                    > >
                    > > "Ron L" <ronl@bogus.Add ress.com> wrote in message
                    > > news:eg4E7IeZFH A.3220@TK2MSFTN GP14.phx.gbl...[color=darkred]
                    > >> We are working on a distributed VB.Net application which will access a
                    > >> SQL database located on a known server. Each client will run on the
                    > >> user's local machine. To implement this, we are trying to use remoting
                    > >> for our access to the SQL server, with the remoting being via IIS. Since
                    > >> all of our users will have accounts in the destination domain, we want to
                    > >> have IIS handle the security for us and not allow anonymous. We have set
                    > >> this up with one of our development clients and servers, but when we try
                    > >> to connect we get the following error message:
                    > >> An unhandled exception of type 'System.Net.Web Exception' occurred in
                    > >> mscorlib.dll
                    > >>
                    > >> Additional information: the remote server returned an error: (401)
                    > >> Unauthorized.
                    > >>
                    > >>
                    > >>
                    > >> Our configuration is this:
                    > >> Component Running on
                    > >> Module1 the development machine
                    > >> RemotingTest IIS on the development machine
                    > >> NorthWind DB SQL Server on another server
                    > >>
                    > >> IIS is configured for Windows Authentication, and the directory with the
                    > >> RemotingTest object has "Script Source Access" set and the Execute
                    > >> Permissions are set to "Scripts and Executables". We have also tried
                    > >> with setting IIS to Allow Anonymous, which moves the error out to the SQL
                    > >> connection (with the error message of "can't make a connection for user
                    > >> NULL"). Even if anonymous did work, it would be a problem for us since
                    > >> the application we are using requires the username to be accessible.
                    > >>
                    > >> The SQL server is in a different domain from development machine, however
                    > >> a trust relationship exists between the two domains. We have verified
                    > >> that the trust works by opening the NorthWind database in Enterprise
                    > >> Manager on the development machine.
                    > >>
                    > >> Can anyone tell us what we are doing wrong here?
                    > >>
                    > >>
                    > >>[/color]
                    > >
                    > >[/color]
                    >
                    >
                    >[/color]

                    Comment

                    • Steve

                      #25
                      Re: Remoting Problem

                      A few pages ago theres a thread on what sounds like a similar problem that
                      was answered well. If you do a search for this string

                      "ASP.Net Impersonation Problem"

                      You should come up with it at the top of the list of results. The post talks
                      about credential forwarding, impersonation and authentication. Which I
                      believe, is what you're currently having problems with.

                      Hope that helps!

                      Steve.

                      "Ron L" wrote:
                      [color=blue]
                      > Nicole
                      > Thanks for your response. I am using a web.config file that I have
                      > included at the end of this message.
                      >
                      > Ron L
                      >
                      > --------------------------Start
                      > Web.Config ------------------------------------------------
                      > <?xml version="1.0" encoding="utf-8" ?>
                      > <configuratio n>
                      >
                      > <system.web>
                      > <compilation defaultLanguage ="vb" debug="true" />
                      > <customErrors mode="RemoteOnl y" />
                      > <authenticati on mode="Windows" />
                      > <authorizatio n>
                      > <allow users="*" /> <!-- Allow all users -->
                      > <allow verbs="GET" users="*" />
                      > </authorization>
                      > <trace enabled="false" requestLimit="1 0" pageOutput="fal se"
                      > traceMode="Sort ByTime" localOnly="true " />
                      > <sessionState
                      > mode="Off"
                      > />
                      > <globalizatio n requestEncoding ="utf-8" responseEncodin g="utf-8" />
                      >
                      > <identity impersonate="tr ue" />
                      >
                      > </system.web>
                      >
                      > <appSettings>
                      > <!-- Trusted_Connect ion=yes -->
                      > <add key="Connection String"
                      > value="Provider =SQLOLEDB;Data Source=Dev2k;In itial
                      > Catalog=Northwi nd;Integrated Security=SSPI;T rusted_Connecti on=yes " />
                      > </appSettings>
                      >
                      > <system.runtime .remoting>
                      > <application>
                      > <!-- the following section defines the classes we're exposing to clients
                      > from this host -->
                      > <service>
                      > <wellknown mode="SingleCal l"
                      > objectUri = "NWInfo.rem "
                      > type = "RemotingTest.N WInfo, RemotingTest" />
                      >
                      > </service>
                      > <channels>
                      > <channel ref="http"
                      > useDefaultCrede ntials="true" />
                      > </channels>
                      > </application>
                      > </system.runtime. remoting>
                      > </configuration>
                      > -------------------------- End
                      > Web.Config -----------------------------------------------
                      > "Nicole Calinoiu" <calinoiu REMOVETHIS AT gmail DOT com> wrote in message
                      > news:uO2gxmfZFH A.3648@TK2MSFTN GP14.phx.gbl...[color=green]
                      > > Have you set the remoting client to pass the default credentials to the
                      > > server? If so, how? Also, what happens when you attempt to browse to the
                      > > server URL in IE?
                      > >
                      > >
                      > > "Ron L" <ronl@bogus.Add ress.com> wrote in message
                      > > news:eg4E7IeZFH A.3220@TK2MSFTN GP14.phx.gbl...[color=darkred]
                      > >> We are working on a distributed VB.Net application which will access a
                      > >> SQL database located on a known server. Each client will run on the
                      > >> user's local machine. To implement this, we are trying to use remoting
                      > >> for our access to the SQL server, with the remoting being via IIS. Since
                      > >> all of our users will have accounts in the destination domain, we want to
                      > >> have IIS handle the security for us and not allow anonymous. We have set
                      > >> this up with one of our development clients and servers, but when we try
                      > >> to connect we get the following error message:
                      > >> An unhandled exception of type 'System.Net.Web Exception' occurred in
                      > >> mscorlib.dll
                      > >>
                      > >> Additional information: the remote server returned an error: (401)
                      > >> Unauthorized.
                      > >>
                      > >>
                      > >>
                      > >> Our configuration is this:
                      > >> Component Running on
                      > >> Module1 the development machine
                      > >> RemotingTest IIS on the development machine
                      > >> NorthWind DB SQL Server on another server
                      > >>
                      > >> IIS is configured for Windows Authentication, and the directory with the
                      > >> RemotingTest object has "Script Source Access" set and the Execute
                      > >> Permissions are set to "Scripts and Executables". We have also tried
                      > >> with setting IIS to Allow Anonymous, which moves the error out to the SQL
                      > >> connection (with the error message of "can't make a connection for user
                      > >> NULL"). Even if anonymous did work, it would be a problem for us since
                      > >> the application we are using requires the username to be accessible.
                      > >>
                      > >> The SQL server is in a different domain from development machine, however
                      > >> a trust relationship exists between the two domains. We have verified
                      > >> that the trust works by opening the NorthWind database in Enterprise
                      > >> Manager on the development machine.
                      > >>
                      > >> Can anyone tell us what we are doing wrong here?
                      > >>
                      > >>
                      > >>[/color]
                      > >
                      > >[/color]
                      >
                      >
                      >[/color]

                      Comment

                      • Nicole Calinoiu

                        #26
                        Re: Remoting Problem

                        The problem described by Ron is extremely unlike to involve Kerberos
                        double-hop issues since the authorization error is occurring on the first
                        hop. This doesn't mean that he might not also eventually encounter an issue
                        on the second hop (if any), but he'll need to actually get code running on
                        the server before this becomes a problem. <g>


                        "Steve" <Steve@discussi ons.microsoft.c om> wrote in message
                        news:954F8750-6385-42FA-B7ED-FC79C253E694@mi crosoft.com...[color=blue]
                        >A few pages ago theres a thread on what sounds like a similar problem that
                        > was answered well. If you do a search for this string
                        >
                        > "ASP.Net Impersonation Problem"
                        >
                        > You should come up with it at the top of the list of results. The post
                        > talks
                        > about credential forwarding, impersonation and authentication. Which I
                        > believe, is what you're currently having problems with.
                        >
                        > Hope that helps!
                        >
                        > Steve.
                        >
                        > "Ron L" wrote:
                        >[color=green]
                        >> Nicole
                        >> Thanks for your response. I am using a web.config file that I have
                        >> included at the end of this message.
                        >>
                        >> Ron L
                        >>
                        >> --------------------------Start
                        >> Web.Config ------------------------------------------------
                        >> <?xml version="1.0" encoding="utf-8" ?>
                        >> <configuratio n>
                        >>
                        >> <system.web>
                        >> <compilation defaultLanguage ="vb" debug="true" />
                        >> <customErrors mode="RemoteOnl y" />
                        >> <authenticati on mode="Windows" />
                        >> <authorizatio n>
                        >> <allow users="*" /> <!-- Allow all users -->
                        >> <allow verbs="GET" users="*" />
                        >> </authorization>
                        >> <trace enabled="false" requestLimit="1 0" pageOutput="fal se"
                        >> traceMode="Sort ByTime" localOnly="true " />
                        >> <sessionState
                        >> mode="Off"
                        >> />
                        >> <globalizatio n requestEncoding ="utf-8" responseEncodin g="utf-8" />
                        >>
                        >> <identity impersonate="tr ue" />
                        >>
                        >> </system.web>
                        >>
                        >> <appSettings>
                        >> <!-- Trusted_Connect ion=yes -->
                        >> <add key="Connection String"
                        >> value="Provider =SQLOLEDB;Data Source=Dev2k;In itial
                        >> Catalog=Northwi nd;Integrated Security=SSPI;T rusted_Connecti on=yes " />
                        >> </appSettings>
                        >>
                        >> <system.runtime .remoting>
                        >> <application>
                        >> <!-- the following section defines the classes we're exposing to
                        >> clients
                        >> from this host -->
                        >> <service>
                        >> <wellknown mode="SingleCal l"
                        >> objectUri = "NWInfo.rem "
                        >> type = "RemotingTest.N WInfo, RemotingTest" />
                        >>
                        >> </service>
                        >> <channels>
                        >> <channel ref="http"
                        >> useDefaultCrede ntials="true" />
                        >> </channels>
                        >> </application>
                        >> </system.runtime. remoting>
                        >> </configuration>
                        >> -------------------------- End
                        >> Web.Config -----------------------------------------------
                        >> "Nicole Calinoiu" <calinoiu REMOVETHIS AT gmail DOT com> wrote in message
                        >> news:uO2gxmfZFH A.3648@TK2MSFTN GP14.phx.gbl...[color=darkred]
                        >> > Have you set the remoting client to pass the default credentials to the
                        >> > server? If so, how? Also, what happens when you attempt to browse to
                        >> > the
                        >> > server URL in IE?
                        >> >
                        >> >
                        >> > "Ron L" <ronl@bogus.Add ress.com> wrote in message
                        >> > news:eg4E7IeZFH A.3220@TK2MSFTN GP14.phx.gbl...
                        >> >> We are working on a distributed VB.Net application which will access a
                        >> >> SQL database located on a known server. Each client will run on the
                        >> >> user's local machine. To implement this, we are trying to use
                        >> >> remoting
                        >> >> for our access to the SQL server, with the remoting being via IIS.
                        >> >> Since
                        >> >> all of our users will have accounts in the destination domain, we want
                        >> >> to
                        >> >> have IIS handle the security for us and not allow anonymous. We have
                        >> >> set
                        >> >> this up with one of our development clients and servers, but when we
                        >> >> try
                        >> >> to connect we get the following error message:
                        >> >> An unhandled exception of type 'System.Net.Web Exception' occurred
                        >> >> in
                        >> >> mscorlib.dll
                        >> >>
                        >> >> Additional information: the remote server returned an error:
                        >> >> (401)
                        >> >> Unauthorized.
                        >> >>
                        >> >>
                        >> >>
                        >> >> Our configuration is this:
                        >> >> Component Running on
                        >> >> Module1 the development machine
                        >> >> RemotingTest IIS on the development machine
                        >> >> NorthWind DB SQL Server on another server
                        >> >>
                        >> >> IIS is configured for Windows Authentication, and the directory with
                        >> >> the
                        >> >> RemotingTest object has "Script Source Access" set and the Execute
                        >> >> Permissions are set to "Scripts and Executables". We have also tried
                        >> >> with setting IIS to Allow Anonymous, which moves the error out to the
                        >> >> SQL
                        >> >> connection (with the error message of "can't make a connection for
                        >> >> user
                        >> >> NULL"). Even if anonymous did work, it would be a problem for us
                        >> >> since
                        >> >> the application we are using requires the username to be accessible.
                        >> >>
                        >> >> The SQL server is in a different domain from development machine,
                        >> >> however
                        >> >> a trust relationship exists between the two domains. We have verified
                        >> >> that the trust works by opening the NorthWind database in Enterprise
                        >> >> Manager on the development machine.
                        >> >>
                        >> >> Can anyone tell us what we are doing wrong here?
                        >> >>
                        >> >>
                        >> >>
                        >> >
                        >> >[/color]
                        >>
                        >>
                        >>[/color][/color]


                        Comment

                        • Nicole Calinoiu

                          #27
                          Re: Remoting Problem

                          The problem described by Ron is extremely unlike to involve Kerberos
                          double-hop issues since the authorization error is occurring on the first
                          hop. This doesn't mean that he might not also eventually encounter an issue
                          on the second hop (if any), but he'll need to actually get code running on
                          the server before this becomes a problem. <g>


                          "Steve" <Steve@discussi ons.microsoft.c om> wrote in message
                          news:954F8750-6385-42FA-B7ED-FC79C253E694@mi crosoft.com...[color=blue]
                          >A few pages ago theres a thread on what sounds like a similar problem that
                          > was answered well. If you do a search for this string
                          >
                          > "ASP.Net Impersonation Problem"
                          >
                          > You should come up with it at the top of the list of results. The post
                          > talks
                          > about credential forwarding, impersonation and authentication. Which I
                          > believe, is what you're currently having problems with.
                          >
                          > Hope that helps!
                          >
                          > Steve.
                          >
                          > "Ron L" wrote:
                          >[color=green]
                          >> Nicole
                          >> Thanks for your response. I am using a web.config file that I have
                          >> included at the end of this message.
                          >>
                          >> Ron L
                          >>
                          >> --------------------------Start
                          >> Web.Config ------------------------------------------------
                          >> <?xml version="1.0" encoding="utf-8" ?>
                          >> <configuratio n>
                          >>
                          >> <system.web>
                          >> <compilation defaultLanguage ="vb" debug="true" />
                          >> <customErrors mode="RemoteOnl y" />
                          >> <authenticati on mode="Windows" />
                          >> <authorizatio n>
                          >> <allow users="*" /> <!-- Allow all users -->
                          >> <allow verbs="GET" users="*" />
                          >> </authorization>
                          >> <trace enabled="false" requestLimit="1 0" pageOutput="fal se"
                          >> traceMode="Sort ByTime" localOnly="true " />
                          >> <sessionState
                          >> mode="Off"
                          >> />
                          >> <globalizatio n requestEncoding ="utf-8" responseEncodin g="utf-8" />
                          >>
                          >> <identity impersonate="tr ue" />
                          >>
                          >> </system.web>
                          >>
                          >> <appSettings>
                          >> <!-- Trusted_Connect ion=yes -->
                          >> <add key="Connection String"
                          >> value="Provider =SQLOLEDB;Data Source=Dev2k;In itial
                          >> Catalog=Northwi nd;Integrated Security=SSPI;T rusted_Connecti on=yes " />
                          >> </appSettings>
                          >>
                          >> <system.runtime .remoting>
                          >> <application>
                          >> <!-- the following section defines the classes we're exposing to
                          >> clients
                          >> from this host -->
                          >> <service>
                          >> <wellknown mode="SingleCal l"
                          >> objectUri = "NWInfo.rem "
                          >> type = "RemotingTest.N WInfo, RemotingTest" />
                          >>
                          >> </service>
                          >> <channels>
                          >> <channel ref="http"
                          >> useDefaultCrede ntials="true" />
                          >> </channels>
                          >> </application>
                          >> </system.runtime. remoting>
                          >> </configuration>
                          >> -------------------------- End
                          >> Web.Config -----------------------------------------------
                          >> "Nicole Calinoiu" <calinoiu REMOVETHIS AT gmail DOT com> wrote in message
                          >> news:uO2gxmfZFH A.3648@TK2MSFTN GP14.phx.gbl...[color=darkred]
                          >> > Have you set the remoting client to pass the default credentials to the
                          >> > server? If so, how? Also, what happens when you attempt to browse to
                          >> > the
                          >> > server URL in IE?
                          >> >
                          >> >
                          >> > "Ron L" <ronl@bogus.Add ress.com> wrote in message
                          >> > news:eg4E7IeZFH A.3220@TK2MSFTN GP14.phx.gbl...
                          >> >> We are working on a distributed VB.Net application which will access a
                          >> >> SQL database located on a known server. Each client will run on the
                          >> >> user's local machine. To implement this, we are trying to use
                          >> >> remoting
                          >> >> for our access to the SQL server, with the remoting being via IIS.
                          >> >> Since
                          >> >> all of our users will have accounts in the destination domain, we want
                          >> >> to
                          >> >> have IIS handle the security for us and not allow anonymous. We have
                          >> >> set
                          >> >> this up with one of our development clients and servers, but when we
                          >> >> try
                          >> >> to connect we get the following error message:
                          >> >> An unhandled exception of type 'System.Net.Web Exception' occurred
                          >> >> in
                          >> >> mscorlib.dll
                          >> >>
                          >> >> Additional information: the remote server returned an error:
                          >> >> (401)
                          >> >> Unauthorized.
                          >> >>
                          >> >>
                          >> >>
                          >> >> Our configuration is this:
                          >> >> Component Running on
                          >> >> Module1 the development machine
                          >> >> RemotingTest IIS on the development machine
                          >> >> NorthWind DB SQL Server on another server
                          >> >>
                          >> >> IIS is configured for Windows Authentication, and the directory with
                          >> >> the
                          >> >> RemotingTest object has "Script Source Access" set and the Execute
                          >> >> Permissions are set to "Scripts and Executables". We have also tried
                          >> >> with setting IIS to Allow Anonymous, which moves the error out to the
                          >> >> SQL
                          >> >> connection (with the error message of "can't make a connection for
                          >> >> user
                          >> >> NULL"). Even if anonymous did work, it would be a problem for us
                          >> >> since
                          >> >> the application we are using requires the username to be accessible.
                          >> >>
                          >> >> The SQL server is in a different domain from development machine,
                          >> >> however
                          >> >> a trust relationship exists between the two domains. We have verified
                          >> >> that the trust works by opening the NorthWind database in Enterprise
                          >> >> Manager on the development machine.
                          >> >>
                          >> >> Can anyone tell us what we are doing wrong here?
                          >> >>
                          >> >>
                          >> >>
                          >> >
                          >> >[/color]
                          >>
                          >>
                          >>[/color][/color]


                          Comment

                          • Ron L

                            #28
                            Re: Remoting Problem

                            Nicole
                            I downloaded the example you suggested, and I can get it working from
                            the command line version; however when I try to set it up in Visual Studio,
                            I get the following error in the first line of the
                            ServerClass::Ge tServerString() :

                            An unhandled exception of type 'System.NullRef erenceException '
                            occurred in msremotingexamp le.dll

                            Additional information: Object reference not set to an instance of
                            an object.

                            I set up a solution (MSRemotingExam ple) with 2 projects: client and
                            ServiceClass. ServiceClass was set up as an empty web project, and the
                            ServiceClass.cs and Web.Config files placed in the project. The client
                            project was setup as a console application class and the client.cs and
                            App.Config files added.

                            Any thoughts?

                            Thanks,
                            Ron L


                            "Nicole Calinoiu" <calinoiu REMOVETHIS AT gmail DOT com> wrote in message
                            news:uC0ZpVGaFH A.1040@TK2MSFTN GP10.phx.gbl...[color=blue]
                            >I can't see any obvious problems in your code. Do you still get a 401
                            >error if you try to reproduce the simple sample from
                            >http://msdn.microsoft.com/library/en...tinginiis.asp?
                            >If not, what happens if you modify the client to use programmatic
                            >configuratio n of the URL and credentials instead of reading these from the
                            >config file?
                            >
                            >
                            >
                            > "Ron L" <ronl@bogus.Add ress.com> wrote in message
                            > news:%23H31R5sZ FHA.3840@tk2msf tngp13.phx.gbl. ..[color=green]
                            >> Nicole
                            >> I have found the code you referenced as an example:
                            >>
                            >> IDictionary channelProperti es;
                            >> channelProperti es = ChannelServices .GetChannelSink Properties(prox y);
                            >> channelProperti es ["credential s"] =
                            >> CredentialCache .DefaultCredent ials;
                            >>
                            >> The thing I am not able to come up with is where the variable "proxy" is
                            >> set and what is it? If I try making it be the RemotingInterfa ce object
                            >> in the code below, I still get my (401) Unauthorized error. Can you
                            >> clear this up for me?
                            >>
                            >> TIA
                            >> Ron L
                            >>
                            >> ------------------------------ Code
                            >> Stub -------------------------------------------
                            >> Sub Main()
                            >> Dim _NWInfo As iNWInfo
                            >> Dim serverURL As String =
                            >> "http://localhost/dotNET/RemotingTest/NWInfo.rem"
                            >>
                            >> Console.WriteLi ne("Welcome to the client application.")
                            >>
                            >> _NWInfo =
                            >> CType(Activator .GetObject(GetT ype(RemotingInt erface.iNWInfo) , serverURL),
                            >> RemotingInterfa ce.iNWInfo)
                            >>
                            >> Dim channelProperti es As IDictionary
                            >> channelProperti es =
                            >> ChannelServices .GetChannelSink Properties(_NWI nfo)
                            >> channelProperti es("credentials ") =
                            >> System.Net.Cred entialCache.Def aultCredentials
                            >> Console.WriteLi ne(channelPrope rties("credenti als"))
                            >>
                            >>
                            >> Console.WriteLi ne(_NWInfo.GetM essage)
                            >>
                            >> Dim dt As DataTable
                            >> Dim row As DataRow
                            >> dt = _NWInfo.GetMost ExpensiveProduc ts
                            >> For Each row In dt.Rows
                            >> Console.WriteLi ne(row.Item(0))
                            >> Next
                            >> Console.WriteLi ne("Press the <enter> key to exit.")
                            >> Console.Read()
                            >> End Sub
                            >> ------------------------------\Code
                            >> Stub -------------------------------------------
                            >>
                            >>
                            >>
                            >> "Nicole Calinoiu" <calinoiu REMOVETHIS AT gmail DOT com> wrote in message
                            >> news:OE8hJrhZFH A.2788@TK2MSFTN GP12.phx.gbl...[color=darkred]
                            >>> "Ron L" <ronl@bogus.Add ress.com> wrote in message
                            >>> news:%23d6PdbhZ FHA.1424@TK2MSF TNGP15.phx.gbl. ..
                            >>>> Nicole
                            >>>> I have been attempting to wade through the reference you gave me (it
                            >>>> was the same reference that Gregory gave). What I want my application
                            >>>> to be able to do is to try the credentials of the currently logged in
                            >>>> user, and if that fails prompt the user for a username and password.
                            >>>> Is this two different instances of using specific credentials, or is it
                            >>>> one instance of using default credentials and one of using specific
                            >>>> credentials?
                            >>>
                            >>> If you want to allow falling back to user-provided credentials, you'll
                            >>> need to do at least two things:
                            >>>
                            >>> 1. Use programmatic configuration of the credentials in your client
                            >>> application rather than specifying the credentials using channel
                            >>> attributes in the configuration file. An example of the programmatic
                            >>> approach is shown in the "Programmat ic configuration" section of the
                            >>> ".NET Remoting Security" reference.
                            >>>
                            >>> 2. Adjust the client code in #1 to attempt to connect to the server
                            >>> and, if authentication fails, prompt the user for custom credentials
                            >>> then switch over to using those credentials. An example of setting the
                            >>> proxy to use such credentials is shown in the "Using specific
                            >>> credentials" section of the ".NET Remoting Security" reference.
                            >>>
                            >>>
                            >>>
                            >>>> As to disabling automatic login (setting it to anonymous in Local
                            >>>> Intranet, and trusted sites), I get the "You are not authorized to view
                            >>>> this page" error page.
                            >>>
                            >>> Good news since this means that the user credentials automatically
                            >>> provided by IE prior to disabling this behaviour were authenticating
                            >>> successfully and permitting access to the server.
                            >>>
                            >>>
                            >>>>
                            >>>> Ron L
                            >>>>
                            >>>>
                            >>>>
                            >>>> "Nicole Calinoiu" <calinoiu REMOVETHIS AT gmail DOT com> wrote in
                            >>>> message news:u%23B0XIhZ FHA.3876@TK2MSF TNGP12.phx.gbl. ..
                            >>>>> "Ron L" <ronl@bogus.Add ress.com> wrote in message
                            >>>>> news:uIT6LpgZFH A.3960@TK2MSFTN GP10.phx.gbl...
                            >>>>>> Nicole
                            >>>>>> I guess I don't know how I am specifying the credentials on the
                            >>>>>> client side.
                            >>>>>
                            >>>>> Then chances are very good that the client credentials aren't being
                            >>>>> passed. See
                            >>>>> http://msdn.microsoft.com/library/en...SecNetch11.asp
                            >>>>> (particularly the "Passing Credentials for Authentication to Remote
                            >>>>> Objects" section) for possible approaches.
                            >>>>>
                            >>>>>
                            >>>>>> As I said to Gregory, I was assuming that IIS handled the credentials
                            >>>>>> as it does for ASP.
                            >>>>>
                            >>>>> IIS will perform the user authentication, but only if the user's
                            >>>>> credentials are passed from the client machine, which is something
                            >>>>> that IIS cannot do. The transparent passing of client credentials that
                            >>>>> you see when using IE to browse a Windows-authenticated intranet site
                            >>>>> is because IE is configured to pass those credentials without user
                            >>>>> intervention. You'll need to make it possible for your client
                            >>>>> application to pass the same credentials.
                            >>>>>
                            >>>>>
                            >>>>>> As to accessing the server, if I enter the following URL:
                            >>>>>> http://localhost/dotNet/remotingtest/nwinfo.rem?wsdl
                            >>>>>>
                            >>>>>> I get an automatically generated web page listing the message names,
                            >>>>>> port names, binding names, etc.
                            >>>>>
                            >>>>> What happens if you disable the intranet zone automatic logon in IE?
                            >>>>>
                            >>>>>
                            >>>>>>
                            >>>>>> Ron L
                            >>>>>>
                            >>>>>>
                            >>>>>>
                            >>>>>> "Nicole Calinoiu" <calinoiu REMOVETHIS AT gmail DOT com> wrote in
                            >>>>>> message news:%23yJ7ObgZ FHA.3712@TK2MSF TNGP09.phx.gbl. ..
                            >>>>>>> That looks like your server config file, which isn't what I was
                            >>>>>>> asking about. On the client, how are you specifying the credentials
                            >>>>>>> that should be sent to the server? (If you don't know what this
                            >>>>>>> question means, chances are excellent that you're not sending any
                            >>>>>>> credentials, which would explain the authentication problem. <g>)
                            >>>>>>> Also, could you please check if you can access the server via IE?
                            >>>>>>>
                            >>>>>>>
                            >>>>>>>
                            >>>>>>> "Ron L" <ronl@bogus.Add ress.com> wrote in message
                            >>>>>>> news:O%231BRRgZ FHA.3096@TK2MSF TNGP15.phx.gbl. ..
                            >>>>>>>> Nicole
                            >>>>>>>> Thanks for your response. I am using a web.config file that I
                            >>>>>>>> have included at the end of this message.
                            >>>>>>>>
                            >>>>>>>> Ron L
                            >>>>>>>>
                            >>>>>>>> --------------------------Start
                            >>>>>>>> Web.Config ------------------------------------------------
                            >>>>>>>> <?xml version="1.0" encoding="utf-8" ?>
                            >>>>>>>> <configuratio n>
                            >>>>>>>>
                            >>>>>>>> <system.web>
                            >>>>>>>> <compilation defaultLanguage ="vb" debug="true" />
                            >>>>>>>> <customErrors mode="RemoteOnl y" />
                            >>>>>>>> <authenticati on mode="Windows" />
                            >>>>>>>> <authorizatio n>
                            >>>>>>>> <allow users="*" /> <!-- Allow all users -->
                            >>>>>>>> <allow verbs="GET" users="*" />
                            >>>>>>>> </authorization>
                            >>>>>>>> <trace enabled="false" requestLimit="1 0" pageOutput="fal se"
                            >>>>>>>> traceMode="Sort ByTime" localOnly="true " />
                            >>>>>>>> <sessionState
                            >>>>>>>> mode="Off"
                            >>>>>>>> />
                            >>>>>>>> <globalizatio n requestEncoding ="utf-8" responseEncodin g="utf-8"
                            >>>>>>>> />
                            >>>>>>>>
                            >>>>>>>> <identity impersonate="tr ue" />
                            >>>>>>>>
                            >>>>>>>> </system.web>
                            >>>>>>>>
                            >>>>>>>> <appSettings>
                            >>>>>>>> <!-- Trusted_Connect ion=yes -->
                            >>>>>>>> <add key="Connection String"
                            >>>>>>>> value="Provider =SQLOLEDB;Data Source=Dev2k;In itial
                            >>>>>>>> Catalog=Northwi nd;Integrated Security=SSPI;T rusted_Connecti on=yes "
                            >>>>>>>> />
                            >>>>>>>> </appSettings>
                            >>>>>>>>
                            >>>>>>>> <system.runtime .remoting>
                            >>>>>>>> <application>
                            >>>>>>>> <!-- the following section defines the classes we're exposing to
                            >>>>>>>> clients from this host -->
                            >>>>>>>> <service>
                            >>>>>>>> <wellknown mode="SingleCal l"
                            >>>>>>>> objectUri = "NWInfo.rem "
                            >>>>>>>> type = "RemotingTest.N WInfo, RemotingTest" />
                            >>>>>>>>
                            >>>>>>>> </service>
                            >>>>>>>> <channels>
                            >>>>>>>> <channel ref="http"
                            >>>>>>>> useDefaultCrede ntials="true" />
                            >>>>>>>> </channels>
                            >>>>>>>> </application>
                            >>>>>>>> </system.runtime. remoting>
                            >>>>>>>> </configuration>
                            >>>>>>>> -------------------------- End
                            >>>>>>>> Web.Config -----------------------------------------------
                            >>>>>>>> "Nicole Calinoiu" <calinoiu REMOVETHIS AT gmail DOT com> wrote in
                            >>>>>>>> message news:uO2gxmfZFH A.3648@TK2MSFTN GP14.phx.gbl...
                            >>>>>>>>> Have you set the remoting client to pass the default credentials
                            >>>>>>>>> to the server? If so, how? Also, what happens when you attempt
                            >>>>>>>>> to browse to the server URL in IE?
                            >>>>>>>>>
                            >>>>>>>>>
                            >>>>>>>>> "Ron L" <ronl@bogus.Add ress.com> wrote in message
                            >>>>>>>>> news:eg4E7IeZFH A.3220@TK2MSFTN GP14.phx.gbl...
                            >>>>>>>>>> We are working on a distributed VB.Net application which will
                            >>>>>>>>>> access a SQL database located on a known server. Each client
                            >>>>>>>>>> will run on the user's local machine. To implement this, we are
                            >>>>>>>>>> trying to use remoting for our access to the SQL server, with the
                            >>>>>>>>>> remoting being via IIS. Since all of our users will have accounts
                            >>>>>>>>>> in the destination domain, we want to have IIS handle the
                            >>>>>>>>>> security for us and not allow anonymous. We have set this up with
                            >>>>>>>>>> one of our development clients and servers, but when we try to
                            >>>>>>>>>> connect we get the following error message:
                            >>>>>>>>>> An unhandled exception of type 'System.Net.Web Exception'
                            >>>>>>>>>> occurred in mscorlib.dll
                            >>>>>>>>>>
                            >>>>>>>>>> Additional information: the remote server returned an error:
                            >>>>>>>>>> (401) Unauthorized.
                            >>>>>>>>>>
                            >>>>>>>>>>
                            >>>>>>>>>>
                            >>>>>>>>>> Our configuration is this:
                            >>>>>>>>>> Component Running on
                            >>>>>>>>>> Module1 the development machine
                            >>>>>>>>>> RemotingTest IIS on the development machine
                            >>>>>>>>>> NorthWind DB SQL Server on another server
                            >>>>>>>>>>
                            >>>>>>>>>> IIS is configured for Windows Authentication, and the directory
                            >>>>>>>>>> with the RemotingTest object has "Script Source Access" set and
                            >>>>>>>>>> the Execute Permissions are set to "Scripts and Executables". We
                            >>>>>>>>>> have also tried with setting IIS to Allow Anonymous, which moves
                            >>>>>>>>>> the error out to the SQL connection (with the error message of
                            >>>>>>>>>> "can't make a connection for user NULL"). Even if anonymous did
                            >>>>>>>>>> work, it would be a problem for us since the application we are
                            >>>>>>>>>> using requires the username to be accessible.
                            >>>>>>>>>>
                            >>>>>>>>>> The SQL server is in a different domain from development machine,
                            >>>>>>>>>> however a trust relationship exists between the two domains. We
                            >>>>>>>>>> have verified that the trust works by opening the NorthWind
                            >>>>>>>>>> database in Enterprise Manager on the development machine.
                            >>>>>>>>>>
                            >>>>>>>>>> Can anyone tell us what we are doing wrong here?
                            >>>>>>>>>>
                            >>>>>>>>>>
                            >>>>>>>>>>
                            >>>>>>>>>
                            >>>>>>>>>
                            >>>>>>>>
                            >>>>>>>>
                            >>>>>>>
                            >>>>>>>
                            >>>>>>
                            >>>>>>
                            >>>>>
                            >>>>>
                            >>>>
                            >>>>
                            >>>
                            >>>[/color]
                            >>
                            >>[/color]
                            >
                            >[/color]


                            Comment

                            • Ron L

                              #29
                              Re: Remoting Problem

                              Nicole
                              I downloaded the example you suggested, and I can get it working from
                              the command line version; however when I try to set it up in Visual Studio,
                              I get the following error in the first line of the
                              ServerClass::Ge tServerString() :

                              An unhandled exception of type 'System.NullRef erenceException '
                              occurred in msremotingexamp le.dll

                              Additional information: Object reference not set to an instance of
                              an object.

                              I set up a solution (MSRemotingExam ple) with 2 projects: client and
                              ServiceClass. ServiceClass was set up as an empty web project, and the
                              ServiceClass.cs and Web.Config files placed in the project. The client
                              project was setup as a console application class and the client.cs and
                              App.Config files added.

                              Any thoughts?

                              Thanks,
                              Ron L


                              "Nicole Calinoiu" <calinoiu REMOVETHIS AT gmail DOT com> wrote in message
                              news:uC0ZpVGaFH A.1040@TK2MSFTN GP10.phx.gbl...[color=blue]
                              >I can't see any obvious problems in your code. Do you still get a 401
                              >error if you try to reproduce the simple sample from
                              >http://msdn.microsoft.com/library/en...tinginiis.asp?
                              >If not, what happens if you modify the client to use programmatic
                              >configuratio n of the URL and credentials instead of reading these from the
                              >config file?
                              >
                              >
                              >
                              > "Ron L" <ronl@bogus.Add ress.com> wrote in message
                              > news:%23H31R5sZ FHA.3840@tk2msf tngp13.phx.gbl. ..[color=green]
                              >> Nicole
                              >> I have found the code you referenced as an example:
                              >>
                              >> IDictionary channelProperti es;
                              >> channelProperti es = ChannelServices .GetChannelSink Properties(prox y);
                              >> channelProperti es ["credential s"] =
                              >> CredentialCache .DefaultCredent ials;
                              >>
                              >> The thing I am not able to come up with is where the variable "proxy" is
                              >> set and what is it? If I try making it be the RemotingInterfa ce object
                              >> in the code below, I still get my (401) Unauthorized error. Can you
                              >> clear this up for me?
                              >>
                              >> TIA
                              >> Ron L
                              >>
                              >> ------------------------------ Code
                              >> Stub -------------------------------------------
                              >> Sub Main()
                              >> Dim _NWInfo As iNWInfo
                              >> Dim serverURL As String =
                              >> "http://localhost/dotNET/RemotingTest/NWInfo.rem"
                              >>
                              >> Console.WriteLi ne("Welcome to the client application.")
                              >>
                              >> _NWInfo =
                              >> CType(Activator .GetObject(GetT ype(RemotingInt erface.iNWInfo) , serverURL),
                              >> RemotingInterfa ce.iNWInfo)
                              >>
                              >> Dim channelProperti es As IDictionary
                              >> channelProperti es =
                              >> ChannelServices .GetChannelSink Properties(_NWI nfo)
                              >> channelProperti es("credentials ") =
                              >> System.Net.Cred entialCache.Def aultCredentials
                              >> Console.WriteLi ne(channelPrope rties("credenti als"))
                              >>
                              >>
                              >> Console.WriteLi ne(_NWInfo.GetM essage)
                              >>
                              >> Dim dt As DataTable
                              >> Dim row As DataRow
                              >> dt = _NWInfo.GetMost ExpensiveProduc ts
                              >> For Each row In dt.Rows
                              >> Console.WriteLi ne(row.Item(0))
                              >> Next
                              >> Console.WriteLi ne("Press the <enter> key to exit.")
                              >> Console.Read()
                              >> End Sub
                              >> ------------------------------\Code
                              >> Stub -------------------------------------------
                              >>
                              >>
                              >>
                              >> "Nicole Calinoiu" <calinoiu REMOVETHIS AT gmail DOT com> wrote in message
                              >> news:OE8hJrhZFH A.2788@TK2MSFTN GP12.phx.gbl...[color=darkred]
                              >>> "Ron L" <ronl@bogus.Add ress.com> wrote in message
                              >>> news:%23d6PdbhZ FHA.1424@TK2MSF TNGP15.phx.gbl. ..
                              >>>> Nicole
                              >>>> I have been attempting to wade through the reference you gave me (it
                              >>>> was the same reference that Gregory gave). What I want my application
                              >>>> to be able to do is to try the credentials of the currently logged in
                              >>>> user, and if that fails prompt the user for a username and password.
                              >>>> Is this two different instances of using specific credentials, or is it
                              >>>> one instance of using default credentials and one of using specific
                              >>>> credentials?
                              >>>
                              >>> If you want to allow falling back to user-provided credentials, you'll
                              >>> need to do at least two things:
                              >>>
                              >>> 1. Use programmatic configuration of the credentials in your client
                              >>> application rather than specifying the credentials using channel
                              >>> attributes in the configuration file. An example of the programmatic
                              >>> approach is shown in the "Programmat ic configuration" section of the
                              >>> ".NET Remoting Security" reference.
                              >>>
                              >>> 2. Adjust the client code in #1 to attempt to connect to the server
                              >>> and, if authentication fails, prompt the user for custom credentials
                              >>> then switch over to using those credentials. An example of setting the
                              >>> proxy to use such credentials is shown in the "Using specific
                              >>> credentials" section of the ".NET Remoting Security" reference.
                              >>>
                              >>>
                              >>>
                              >>>> As to disabling automatic login (setting it to anonymous in Local
                              >>>> Intranet, and trusted sites), I get the "You are not authorized to view
                              >>>> this page" error page.
                              >>>
                              >>> Good news since this means that the user credentials automatically
                              >>> provided by IE prior to disabling this behaviour were authenticating
                              >>> successfully and permitting access to the server.
                              >>>
                              >>>
                              >>>>
                              >>>> Ron L
                              >>>>
                              >>>>
                              >>>>
                              >>>> "Nicole Calinoiu" <calinoiu REMOVETHIS AT gmail DOT com> wrote in
                              >>>> message news:u%23B0XIhZ FHA.3876@TK2MSF TNGP12.phx.gbl. ..
                              >>>>> "Ron L" <ronl@bogus.Add ress.com> wrote in message
                              >>>>> news:uIT6LpgZFH A.3960@TK2MSFTN GP10.phx.gbl...
                              >>>>>> Nicole
                              >>>>>> I guess I don't know how I am specifying the credentials on the
                              >>>>>> client side.
                              >>>>>
                              >>>>> Then chances are very good that the client credentials aren't being
                              >>>>> passed. See
                              >>>>> http://msdn.microsoft.com/library/en...SecNetch11.asp
                              >>>>> (particularly the "Passing Credentials for Authentication to Remote
                              >>>>> Objects" section) for possible approaches.
                              >>>>>
                              >>>>>
                              >>>>>> As I said to Gregory, I was assuming that IIS handled the credentials
                              >>>>>> as it does for ASP.
                              >>>>>
                              >>>>> IIS will perform the user authentication, but only if the user's
                              >>>>> credentials are passed from the client machine, which is something
                              >>>>> that IIS cannot do. The transparent passing of client credentials that
                              >>>>> you see when using IE to browse a Windows-authenticated intranet site
                              >>>>> is because IE is configured to pass those credentials without user
                              >>>>> intervention. You'll need to make it possible for your client
                              >>>>> application to pass the same credentials.
                              >>>>>
                              >>>>>
                              >>>>>> As to accessing the server, if I enter the following URL:
                              >>>>>> http://localhost/dotNet/remotingtest/nwinfo.rem?wsdl
                              >>>>>>
                              >>>>>> I get an automatically generated web page listing the message names,
                              >>>>>> port names, binding names, etc.
                              >>>>>
                              >>>>> What happens if you disable the intranet zone automatic logon in IE?
                              >>>>>
                              >>>>>
                              >>>>>>
                              >>>>>> Ron L
                              >>>>>>
                              >>>>>>
                              >>>>>>
                              >>>>>> "Nicole Calinoiu" <calinoiu REMOVETHIS AT gmail DOT com> wrote in
                              >>>>>> message news:%23yJ7ObgZ FHA.3712@TK2MSF TNGP09.phx.gbl. ..
                              >>>>>>> That looks like your server config file, which isn't what I was
                              >>>>>>> asking about. On the client, how are you specifying the credentials
                              >>>>>>> that should be sent to the server? (If you don't know what this
                              >>>>>>> question means, chances are excellent that you're not sending any
                              >>>>>>> credentials, which would explain the authentication problem. <g>)
                              >>>>>>> Also, could you please check if you can access the server via IE?
                              >>>>>>>
                              >>>>>>>
                              >>>>>>>
                              >>>>>>> "Ron L" <ronl@bogus.Add ress.com> wrote in message
                              >>>>>>> news:O%231BRRgZ FHA.3096@TK2MSF TNGP15.phx.gbl. ..
                              >>>>>>>> Nicole
                              >>>>>>>> Thanks for your response. I am using a web.config file that I
                              >>>>>>>> have included at the end of this message.
                              >>>>>>>>
                              >>>>>>>> Ron L
                              >>>>>>>>
                              >>>>>>>> --------------------------Start
                              >>>>>>>> Web.Config ------------------------------------------------
                              >>>>>>>> <?xml version="1.0" encoding="utf-8" ?>
                              >>>>>>>> <configuratio n>
                              >>>>>>>>
                              >>>>>>>> <system.web>
                              >>>>>>>> <compilation defaultLanguage ="vb" debug="true" />
                              >>>>>>>> <customErrors mode="RemoteOnl y" />
                              >>>>>>>> <authenticati on mode="Windows" />
                              >>>>>>>> <authorizatio n>
                              >>>>>>>> <allow users="*" /> <!-- Allow all users -->
                              >>>>>>>> <allow verbs="GET" users="*" />
                              >>>>>>>> </authorization>
                              >>>>>>>> <trace enabled="false" requestLimit="1 0" pageOutput="fal se"
                              >>>>>>>> traceMode="Sort ByTime" localOnly="true " />
                              >>>>>>>> <sessionState
                              >>>>>>>> mode="Off"
                              >>>>>>>> />
                              >>>>>>>> <globalizatio n requestEncoding ="utf-8" responseEncodin g="utf-8"
                              >>>>>>>> />
                              >>>>>>>>
                              >>>>>>>> <identity impersonate="tr ue" />
                              >>>>>>>>
                              >>>>>>>> </system.web>
                              >>>>>>>>
                              >>>>>>>> <appSettings>
                              >>>>>>>> <!-- Trusted_Connect ion=yes -->
                              >>>>>>>> <add key="Connection String"
                              >>>>>>>> value="Provider =SQLOLEDB;Data Source=Dev2k;In itial
                              >>>>>>>> Catalog=Northwi nd;Integrated Security=SSPI;T rusted_Connecti on=yes "
                              >>>>>>>> />
                              >>>>>>>> </appSettings>
                              >>>>>>>>
                              >>>>>>>> <system.runtime .remoting>
                              >>>>>>>> <application>
                              >>>>>>>> <!-- the following section defines the classes we're exposing to
                              >>>>>>>> clients from this host -->
                              >>>>>>>> <service>
                              >>>>>>>> <wellknown mode="SingleCal l"
                              >>>>>>>> objectUri = "NWInfo.rem "
                              >>>>>>>> type = "RemotingTest.N WInfo, RemotingTest" />
                              >>>>>>>>
                              >>>>>>>> </service>
                              >>>>>>>> <channels>
                              >>>>>>>> <channel ref="http"
                              >>>>>>>> useDefaultCrede ntials="true" />
                              >>>>>>>> </channels>
                              >>>>>>>> </application>
                              >>>>>>>> </system.runtime. remoting>
                              >>>>>>>> </configuration>
                              >>>>>>>> -------------------------- End
                              >>>>>>>> Web.Config -----------------------------------------------
                              >>>>>>>> "Nicole Calinoiu" <calinoiu REMOVETHIS AT gmail DOT com> wrote in
                              >>>>>>>> message news:uO2gxmfZFH A.3648@TK2MSFTN GP14.phx.gbl...
                              >>>>>>>>> Have you set the remoting client to pass the default credentials
                              >>>>>>>>> to the server? If so, how? Also, what happens when you attempt
                              >>>>>>>>> to browse to the server URL in IE?
                              >>>>>>>>>
                              >>>>>>>>>
                              >>>>>>>>> "Ron L" <ronl@bogus.Add ress.com> wrote in message
                              >>>>>>>>> news:eg4E7IeZFH A.3220@TK2MSFTN GP14.phx.gbl...
                              >>>>>>>>>> We are working on a distributed VB.Net application which will
                              >>>>>>>>>> access a SQL database located on a known server. Each client
                              >>>>>>>>>> will run on the user's local machine. To implement this, we are
                              >>>>>>>>>> trying to use remoting for our access to the SQL server, with the
                              >>>>>>>>>> remoting being via IIS. Since all of our users will have accounts
                              >>>>>>>>>> in the destination domain, we want to have IIS handle the
                              >>>>>>>>>> security for us and not allow anonymous. We have set this up with
                              >>>>>>>>>> one of our development clients and servers, but when we try to
                              >>>>>>>>>> connect we get the following error message:
                              >>>>>>>>>> An unhandled exception of type 'System.Net.Web Exception'
                              >>>>>>>>>> occurred in mscorlib.dll
                              >>>>>>>>>>
                              >>>>>>>>>> Additional information: the remote server returned an error:
                              >>>>>>>>>> (401) Unauthorized.
                              >>>>>>>>>>
                              >>>>>>>>>>
                              >>>>>>>>>>
                              >>>>>>>>>> Our configuration is this:
                              >>>>>>>>>> Component Running on
                              >>>>>>>>>> Module1 the development machine
                              >>>>>>>>>> RemotingTest IIS on the development machine
                              >>>>>>>>>> NorthWind DB SQL Server on another server
                              >>>>>>>>>>
                              >>>>>>>>>> IIS is configured for Windows Authentication, and the directory
                              >>>>>>>>>> with the RemotingTest object has "Script Source Access" set and
                              >>>>>>>>>> the Execute Permissions are set to "Scripts and Executables". We
                              >>>>>>>>>> have also tried with setting IIS to Allow Anonymous, which moves
                              >>>>>>>>>> the error out to the SQL connection (with the error message of
                              >>>>>>>>>> "can't make a connection for user NULL"). Even if anonymous did
                              >>>>>>>>>> work, it would be a problem for us since the application we are
                              >>>>>>>>>> using requires the username to be accessible.
                              >>>>>>>>>>
                              >>>>>>>>>> The SQL server is in a different domain from development machine,
                              >>>>>>>>>> however a trust relationship exists between the two domains. We
                              >>>>>>>>>> have verified that the trust works by opening the NorthWind
                              >>>>>>>>>> database in Enterprise Manager on the development machine.
                              >>>>>>>>>>
                              >>>>>>>>>> Can anyone tell us what we are doing wrong here?
                              >>>>>>>>>>
                              >>>>>>>>>>
                              >>>>>>>>>>
                              >>>>>>>>>
                              >>>>>>>>>
                              >>>>>>>>
                              >>>>>>>>
                              >>>>>>>
                              >>>>>>>
                              >>>>>>
                              >>>>>>
                              >>>>>
                              >>>>>
                              >>>>
                              >>>>
                              >>>
                              >>>[/color]
                              >>
                              >>[/color]
                              >
                              >[/color]


                              Comment

                              • Ron L

                                #30
                                Re: Remoting Problem

                                Nicole

                                I got it to work. The final code on the client side was:

                                Private Sub ClientForm_Load (ByVal sender As System.Object, ByVal e As
                                System.EventArg s) Handles

                                MyBase.Load
                                Dim _NWInfo As iNWInfo
                                Dim serverURL As String =
                                "http://localhost/dotNET/RemotingTest/NWInfo.rem"

                                txtResults.Text = "Welcome to the client application." & vbCrLf
                                txtResults.Text += "Console Identity: " +
                                WindowsIdentity .GetCurrent().N ame

                                _NWInfo =
                                CType(Activator .GetObject(GetT ype(RemotingInt erface.iNWInfo) , serverURL),
                                RemotingInterfa ce.iNWInfo)

                                Dim channelproperti es As IDictionary
                                channelproperti es =
                                ChannelServices .GetChannelSink Properties(_NWI nfo)
                                channelproperti es("credentials ") =
                                CredentialCache .DefaultCredent ials

                                txtResults.Text = txtResults.Text & vbCrLf & vbCrLf & "Trying to get
                                the text message: "
                                Try
                                txtResults.Text = txtResults.Text & vbCrLf & _NWInfo.GetMess age
                                Catch ex As Exception
                                txtResults.Text = txtResults.Text & vbCrLf & ex.Message
                                End Try

                                txtResults.Text = txtResults.Text & vbCrLf & vbCrLf & "Trying
                                GetMostExpensiv eProducts: "
                                Try
                                Dim dt As DataTable
                                Dim row As DataRow
                                dt = _NWInfo.GetMost ExpensiveProduc ts
                                For Each row In dt.Rows
                                txtResults.Text = txtResults.Text & vbCrLf & row.Item(0)
                                Next
                                Catch ex As Exception
                                txtResults.Text = txtResults.Text & vbCrLf & ex.Message
                                End Try

                                txtResults.Sele ctionLength = 0
                                End Sub

                                I had a series of cascading errors in the previous code that I finally
                                managed to untangle today.

                                Thank you for the help.

                                Ron L


                                "Nicole Calinoiu" <calinoiu REMOVETHIS AT gmail DOT com> wrote in message
                                news:uC0ZpVGaFH A.1040@TK2MSFTN GP10.phx.gbl...[color=blue]
                                >I can't see any obvious problems in your code. Do you still get a 401
                                >error if you try to reproduce the simple sample from
                                >http://msdn.microsoft.com/library/en...tinginiis.asp?
                                >If not, what happens if you modify the client to use programmatic
                                >configuratio n of the URL and credentials instead of reading these from the
                                >config file?
                                >
                                >
                                >
                                > "Ron L" <ronl@bogus.Add ress.com> wrote in message
                                > news:%23H31R5sZ FHA.3840@tk2msf tngp13.phx.gbl. ..[color=green]
                                >> Nicole
                                >> I have found the code you referenced as an example:
                                >>
                                >> IDictionary channelProperti es;
                                >> channelProperti es = ChannelServices .GetChannelSink Properties(prox y);
                                >> channelProperti es ["credential s"] =
                                >> CredentialCache .DefaultCredent ials;
                                >>
                                >> The thing I am not able to come up with is where the variable "proxy" is
                                >> set and what is it? If I try making it be the RemotingInterfa ce object
                                >> in the code below, I still get my (401) Unauthorized error. Can you
                                >> clear this up for me?
                                >>
                                >> TIA
                                >> Ron L
                                >>
                                >> ------------------------------ Code
                                >> Stub -------------------------------------------
                                >> Sub Main()
                                >> Dim _NWInfo As iNWInfo
                                >> Dim serverURL As String =
                                >> "http://localhost/dotNET/RemotingTest/NWInfo.rem"
                                >>
                                >> Console.WriteLi ne("Welcome to the client application.")
                                >>
                                >> _NWInfo =
                                >> CType(Activator .GetObject(GetT ype(RemotingInt erface.iNWInfo) , serverURL),
                                >> RemotingInterfa ce.iNWInfo)
                                >>
                                >> Dim channelProperti es As IDictionary
                                >> channelProperti es =
                                >> ChannelServices .GetChannelSink Properties(_NWI nfo)
                                >> channelProperti es("credentials ") =
                                >> System.Net.Cred entialCache.Def aultCredentials
                                >> Console.WriteLi ne(channelPrope rties("credenti als"))
                                >>
                                >>
                                >> Console.WriteLi ne(_NWInfo.GetM essage)
                                >>
                                >> Dim dt As DataTable
                                >> Dim row As DataRow
                                >> dt = _NWInfo.GetMost ExpensiveProduc ts
                                >> For Each row In dt.Rows
                                >> Console.WriteLi ne(row.Item(0))
                                >> Next
                                >> Console.WriteLi ne("Press the <enter> key to exit.")
                                >> Console.Read()
                                >> End Sub
                                >> ------------------------------\Code
                                >> Stub -------------------------------------------
                                >>
                                >>
                                >>
                                >> "Nicole Calinoiu" <calinoiu REMOVETHIS AT gmail DOT com> wrote in message
                                >> news:OE8hJrhZFH A.2788@TK2MSFTN GP12.phx.gbl...[color=darkred]
                                >>> "Ron L" <ronl@bogus.Add ress.com> wrote in message
                                >>> news:%23d6PdbhZ FHA.1424@TK2MSF TNGP15.phx.gbl. ..
                                >>>> Nicole
                                >>>> I have been attempting to wade through the reference you gave me (it
                                >>>> was the same reference that Gregory gave). What I want my application
                                >>>> to be able to do is to try the credentials of the currently logged in
                                >>>> user, and if that fails prompt the user for a username and password.
                                >>>> Is this two different instances of using specific credentials, or is it
                                >>>> one instance of using default credentials and one of using specific
                                >>>> credentials?
                                >>>
                                >>> If you want to allow falling back to user-provided credentials, you'll
                                >>> need to do at least two things:
                                >>>
                                >>> 1. Use programmatic configuration of the credentials in your client
                                >>> application rather than specifying the credentials using channel
                                >>> attributes in the configuration file. An example of the programmatic
                                >>> approach is shown in the "Programmat ic configuration" section of the
                                >>> ".NET Remoting Security" reference.
                                >>>
                                >>> 2. Adjust the client code in #1 to attempt to connect to the server
                                >>> and, if authentication fails, prompt the user for custom credentials
                                >>> then switch over to using those credentials. An example of setting the
                                >>> proxy to use such credentials is shown in the "Using specific
                                >>> credentials" section of the ".NET Remoting Security" reference.
                                >>>
                                >>>
                                >>>
                                >>>> As to disabling automatic login (setting it to anonymous in Local
                                >>>> Intranet, and trusted sites), I get the "You are not authorized to view
                                >>>> this page" error page.
                                >>>
                                >>> Good news since this means that the user credentials automatically
                                >>> provided by IE prior to disabling this behaviour were authenticating
                                >>> successfully and permitting access to the server.
                                >>>
                                >>>
                                >>>>
                                >>>> Ron L
                                >>>>
                                >>>>
                                >>>>
                                >>>> "Nicole Calinoiu" <calinoiu REMOVETHIS AT gmail DOT com> wrote in
                                >>>> message news:u%23B0XIhZ FHA.3876@TK2MSF TNGP12.phx.gbl. ..
                                >>>>> "Ron L" <ronl@bogus.Add ress.com> wrote in message
                                >>>>> news:uIT6LpgZFH A.3960@TK2MSFTN GP10.phx.gbl...
                                >>>>>> Nicole
                                >>>>>> I guess I don't know how I am specifying the credentials on the
                                >>>>>> client side.
                                >>>>>
                                >>>>> Then chances are very good that the client credentials aren't being
                                >>>>> passed. See
                                >>>>> http://msdn.microsoft.com/library/en...SecNetch11.asp
                                >>>>> (particularly the "Passing Credentials for Authentication to Remote
                                >>>>> Objects" section) for possible approaches.
                                >>>>>
                                >>>>>
                                >>>>>> As I said to Gregory, I was assuming that IIS handled the credentials
                                >>>>>> as it does for ASP.
                                >>>>>
                                >>>>> IIS will perform the user authentication, but only if the user's
                                >>>>> credentials are passed from the client machine, which is something
                                >>>>> that IIS cannot do. The transparent passing of client credentials that
                                >>>>> you see when using IE to browse a Windows-authenticated intranet site
                                >>>>> is because IE is configured to pass those credentials without user
                                >>>>> intervention. You'll need to make it possible for your client
                                >>>>> application to pass the same credentials.
                                >>>>>
                                >>>>>
                                >>>>>> As to accessing the server, if I enter the following URL:
                                >>>>>> http://localhost/dotNet/remotingtest/nwinfo.rem?wsdl
                                >>>>>>
                                >>>>>> I get an automatically generated web page listing the message names,
                                >>>>>> port names, binding names, etc.
                                >>>>>
                                >>>>> What happens if you disable the intranet zone automatic logon in IE?
                                >>>>>
                                >>>>>
                                >>>>>>
                                >>>>>> Ron L
                                >>>>>>
                                >>>>>>
                                >>>>>>
                                >>>>>> "Nicole Calinoiu" <calinoiu REMOVETHIS AT gmail DOT com> wrote in
                                >>>>>> message news:%23yJ7ObgZ FHA.3712@TK2MSF TNGP09.phx.gbl. ..
                                >>>>>>> That looks like your server config file, which isn't what I was
                                >>>>>>> asking about. On the client, how are you specifying the credentials
                                >>>>>>> that should be sent to the server? (If you don't know what this
                                >>>>>>> question means, chances are excellent that you're not sending any
                                >>>>>>> credentials, which would explain the authentication problem. <g>)
                                >>>>>>> Also, could you please check if you can access the server via IE?
                                >>>>>>>
                                >>>>>>>
                                >>>>>>>
                                >>>>>>> "Ron L" <ronl@bogus.Add ress.com> wrote in message
                                >>>>>>> news:O%231BRRgZ FHA.3096@TK2MSF TNGP15.phx.gbl. ..
                                >>>>>>>> Nicole
                                >>>>>>>> Thanks for your response. I am using a web.config file that I
                                >>>>>>>> have included at the end of this message.
                                >>>>>>>>
                                >>>>>>>> Ron L
                                >>>>>>>>
                                >>>>>>>> --------------------------Start
                                >>>>>>>> Web.Config ------------------------------------------------
                                >>>>>>>> <?xml version="1.0" encoding="utf-8" ?>
                                >>>>>>>> <configuratio n>
                                >>>>>>>>
                                >>>>>>>> <system.web>
                                >>>>>>>> <compilation defaultLanguage ="vb" debug="true" />
                                >>>>>>>> <customErrors mode="RemoteOnl y" />
                                >>>>>>>> <authenticati on mode="Windows" />
                                >>>>>>>> <authorizatio n>
                                >>>>>>>> <allow users="*" /> <!-- Allow all users -->
                                >>>>>>>> <allow verbs="GET" users="*" />
                                >>>>>>>> </authorization>
                                >>>>>>>> <trace enabled="false" requestLimit="1 0" pageOutput="fal se"
                                >>>>>>>> traceMode="Sort ByTime" localOnly="true " />
                                >>>>>>>> <sessionState
                                >>>>>>>> mode="Off"
                                >>>>>>>> />
                                >>>>>>>> <globalizatio n requestEncoding ="utf-8" responseEncodin g="utf-8"
                                >>>>>>>> />
                                >>>>>>>>
                                >>>>>>>> <identity impersonate="tr ue" />
                                >>>>>>>>
                                >>>>>>>> </system.web>
                                >>>>>>>>
                                >>>>>>>> <appSettings>
                                >>>>>>>> <!-- Trusted_Connect ion=yes -->
                                >>>>>>>> <add key="Connection String"
                                >>>>>>>> value="Provider =SQLOLEDB;Data Source=Dev2k;In itial
                                >>>>>>>> Catalog=Northwi nd;Integrated Security=SSPI;T rusted_Connecti on=yes "
                                >>>>>>>> />
                                >>>>>>>> </appSettings>
                                >>>>>>>>
                                >>>>>>>> <system.runtime .remoting>
                                >>>>>>>> <application>
                                >>>>>>>> <!-- the following section defines the classes we're exposing to
                                >>>>>>>> clients from this host -->
                                >>>>>>>> <service>
                                >>>>>>>> <wellknown mode="SingleCal l"
                                >>>>>>>> objectUri = "NWInfo.rem "
                                >>>>>>>> type = "RemotingTest.N WInfo, RemotingTest" />
                                >>>>>>>>
                                >>>>>>>> </service>
                                >>>>>>>> <channels>
                                >>>>>>>> <channel ref="http"
                                >>>>>>>> useDefaultCrede ntials="true" />
                                >>>>>>>> </channels>
                                >>>>>>>> </application>
                                >>>>>>>> </system.runtime. remoting>
                                >>>>>>>> </configuration>
                                >>>>>>>> -------------------------- End
                                >>>>>>>> Web.Config -----------------------------------------------
                                >>>>>>>> "Nicole Calinoiu" <calinoiu REMOVETHIS AT gmail DOT com> wrote in
                                >>>>>>>> message news:uO2gxmfZFH A.3648@TK2MSFTN GP14.phx.gbl...
                                >>>>>>>>> Have you set the remoting client to pass the default credentials
                                >>>>>>>>> to the server? If so, how? Also, what happens when you attempt
                                >>>>>>>>> to browse to the server URL in IE?
                                >>>>>>>>>
                                >>>>>>>>>
                                >>>>>>>>> "Ron L" <ronl@bogus.Add ress.com> wrote in message
                                >>>>>>>>> news:eg4E7IeZFH A.3220@TK2MSFTN GP14.phx.gbl...
                                >>>>>>>>>> We are working on a distributed VB.Net application which will
                                >>>>>>>>>> access a SQL database located on a known server. Each client
                                >>>>>>>>>> will run on the user's local machine. To implement this, we are
                                >>>>>>>>>> trying to use remoting for our access to the SQL server, with the
                                >>>>>>>>>> remoting being via IIS. Since all of our users will have accounts
                                >>>>>>>>>> in the destination domain, we want to have IIS handle the
                                >>>>>>>>>> security for us and not allow anonymous. We have set this up with
                                >>>>>>>>>> one of our development clients and servers, but when we try to
                                >>>>>>>>>> connect we get the following error message:
                                >>>>>>>>>> An unhandled exception of type 'System.Net.Web Exception'
                                >>>>>>>>>> occurred in mscorlib.dll
                                >>>>>>>>>>
                                >>>>>>>>>> Additional information: the remote server returned an error:
                                >>>>>>>>>> (401) Unauthorized.
                                >>>>>>>>>>
                                >>>>>>>>>>
                                >>>>>>>>>>
                                >>>>>>>>>> Our configuration is this:
                                >>>>>>>>>> Component Running on
                                >>>>>>>>>> Module1 the development machine
                                >>>>>>>>>> RemotingTest IIS on the development machine
                                >>>>>>>>>> NorthWind DB SQL Server on another server
                                >>>>>>>>>>
                                >>>>>>>>>> IIS is configured for Windows Authentication, and the directory
                                >>>>>>>>>> with the RemotingTest object has "Script Source Access" set and
                                >>>>>>>>>> the Execute Permissions are set to "Scripts and Executables". We
                                >>>>>>>>>> have also tried with setting IIS to Allow Anonymous, which moves
                                >>>>>>>>>> the error out to the SQL connection (with the error message of
                                >>>>>>>>>> "can't make a connection for user NULL"). Even if anonymous did
                                >>>>>>>>>> work, it would be a problem for us since the application we are
                                >>>>>>>>>> using requires the username to be accessible.
                                >>>>>>>>>>
                                >>>>>>>>>> The SQL server is in a different domain from development machine,
                                >>>>>>>>>> however a trust relationship exists between the two domains. We
                                >>>>>>>>>> have verified that the trust works by opening the NorthWind
                                >>>>>>>>>> database in Enterprise Manager on the development machine.
                                >>>>>>>>>>
                                >>>>>>>>>> Can anyone tell us what we are doing wrong here?
                                >>>>>>>>>>
                                >>>>>>>>>>
                                >>>>>>>>>>
                                >>>>>>>>>
                                >>>>>>>>>
                                >>>>>>>>
                                >>>>>>>>
                                >>>>>>>
                                >>>>>>>
                                >>>>>>
                                >>>>>>
                                >>>>>
                                >>>>>
                                >>>>
                                >>>>
                                >>>
                                >>>[/color]
                                >>
                                >>[/color]
                                >
                                >[/color]


                                Comment

                                Working...