このコードを使用してhttp://platinumdogs.wordpress.com/2008/10/30/net-c-impersonation-with-network-credentials/#comment-770ドメイン内のマシンからドメイン外のマシンに接続します。asp.netドメイン内のサーバーからドメイン外のサーバーに偽装
私が書いたWebアプリケーションは、ファイルを削除するためにWebサーバーからファイル共有に接続します。
私の問題は、ある状況で正しい資格情報を取得できないということです。以下で説明する両方のシナリオでは、同じバックエンドのdllを使用します。
このコードを実行する2つのアプリケーションがあります。ドメイン内の両方のマシンと1つはドメイン内のWebサーバーとドメイン外のデータサーバーです。非ドメインWebサーバーサーバーから非ドメインデータサーバーへの要求を実行するサーバー上で実行されているコードが機能しています。ドメインWebサーバー上で非ドメインデータサーバーを要求しているコードが機能していません。
さらにテストするために、ドメインサーバーをドメインから取り出し、それ以上の変更を加えずにコードが再び機能していました。だから、私が変える必要のあるものがあるように見えます。私はこれを解決するために何をする必要がありますか?
@ -----------以下の質問のための余分な情報:
これは、設定ファイルで指定された静的なユーザー名passwor、です。アカウントはドメインアカウントではなく、他のサーバーで使用されているアカウントと同じアカウントです。
Request information:
Request URL: http://XXX.XXX.XXX.XXX/nl-nl/Attachment/GetAllFileNames
Request path: /nl-nl/Attachment/GetAllFileNames
User host address: XXX.XXX.XXX.XXX
User:
Is authenticated: False
Authentication Type:
Thread account name: NT AUTHORITY\NETWORK SERVICE
Thread information:
Thread ID: 1
Thread account name: NT AUTHORITY\NETWORK SERVICE
Is impersonating: False
Stack trace: at System.Web.Mvc.ViewResult.FindView(ControllerContext context)
at System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult)
at System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName)
at System.Web.Mvc.Controller.ExecuteCore()
at System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext)
at System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext requestContext)
at System.Web.Mvc.MvcHandler.<>c__DisplayClass6.<>c__DisplayClassb.<BeginProcessRequest>b__5()
at System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass1.<MakeVoidDelegate>b__0()
at System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass8`1.<BeginSynchronous>b__7(IAsyncResult _)
at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`1.End()
at System.Web.Mvc.MvcHandler.<>c__DisplayClasse.<EndProcessRequest>b__d()
at System.Web.Mvc.SecurityUtil.<GetCallInAppTrustThunk>b__0(Action f)
at System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(Action action)
at System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult)
at System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result)
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
まず静的ユーザー名/パスワードを使用していると仮定します。ドメインユーザーですか、またはWebサーバー上のローカルユーザーアカウントですか?次に、エラーメッセージは何ですか?リンクされたコードは例外を介してエラーメッセージを返すので、応答ページまたはイベントログに表示されるはずです。 – Ben