簡體   English   中英

ASP.NET + NetworkCredentials,登錄嘗試失敗

[英]ASP.NET + NetworkCredentials, The logon attempt failed

我有一個需要Windows集成安全性的ASP.NET應用程序。 出於某種原因,我不在這里討論,我需要在運行時創建一個WebRequest,在應用程序中調用其他頁面並處理結果。

該應用程序在我們使用DNS別名的服務器上運行,例如theapp.domain.com。

因此,我使用預定義的域用戶和密碼創建了一個NetworkCredential,並將其附加到請求中。

這是我得到的:

    [Win32Exception (0x80004005): The logon attempt failed]
  System.Net.NTAuthentication.GetOutgoingBlob(Byte[] incomingBlob, Boolean throwOnError, SecurityStatus& statusCode) +1404402
  System.Net.NTAuthentication.GetOutgoingBlob(String incomingBlob) +78
  System.Net.NegotiateClient.DoAuthenticate(String challenge, WebRequest webRequest, ICredentials credentials, Boolean preAuthenticate) +560
  System.Net.NegotiateClient.Authenticate(String challenge, WebRequest webRequest, ICredentials credentials) +14
  System.Net.AuthenticationManager.Authenticate(String challenge, WebRequest request, ICredentials credentials) +247
  System.Net.AuthenticationState.AttemptAuthenticate(HttpWebRequest httpWebRequest, ICredentials authInfo) +243
  System.Net.HttpWebRequest.CheckResubmitForAuth() +232
  System.Net.HttpWebRequest.CheckResubmit(Exception& e) +5299747

[WebException: The remote server returned an error: (401) Unauthorized.]
  System.Net.HttpWebRequest.GetResponse() +5313085
  Entropy.Envoy.Web.Corporate.ExportFilter.GetTargetReportContent(Uri targetUrl, HttpCookieCollection cookies) +521
  Entropy.Envoy.Web.Corporate.ExportFilter.Page_Load(Object sender, EventArgs e) +139
  System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
  System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
  System.EventHandler.Invoke(Object sender, EventArgs e) +0
  System.Web.UI.Control.OnLoad(EventArgs e) +99
  System.Web.UI.Control.LoadRecursive() +50
  System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627

盡管相同的代碼也可以在其他具有類似設置的服務器上工作。 到底是怎么回事?

找到了答案。 原來就像將SPN添加到Active Directory一樣簡單:

setspn -a HTTP//WebServer.domain.com customDomainAccount
setspn -a HTTP//servername customDomainAccount

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM