2

asp.net應用程序(c#)在調試模式下正常工作;發佈,獲得401.1錯誤(未經授權)。 當我放入網址時,會出現一個對話框,詢問用戶名爲&的密碼。把它放在3倍,錯誤。發佈的asp.net WebApp將無法連接。 401.1未授權

這是一個內部應用程序,僅使用Windows身份驗證。

  • IIS 7.5,使用ApplicationPoolIdentity。

  • SQLServer數據庫

從401.1頁特定錯誤消息:

  • 模塊WindowsAuthenticationModule

  • 通知AuthenticateRequest

  • 處理程序ExtensionlessUrlHa ndler集成-4.0

  • 錯誤代碼0x8009030e

  • 請求的URL http://smalltools.dbsvc.com:80/

  • 物理路徑C:\的Inetpub \ SmallTools

  • 登錄方法尚未確定

  • 登錄用戶尚未確定

該應用程序有一個用戶表來確定該用戶的「角色」。我在master頁面中根據經過驗證的用戶查詢表並返回角色。這反過來決定哪些按鈕在導航欄上可見。

看着在安全日誌中,並發現了以下3項:

2012-07-20 14:55:11 10.0.1.38 GET/- 80 - 10.0.13.106 Mozilla/5.0+(Windows+NT+6.1;+rv:14.0)+Gecko/20100101+Firefox/14.0.1 401 2 5 15 

2012-07-20 14:55:20 10.0.1.38 GET/- 80 DE\cin.bro 10.0.13.106 Mozilla/5.0+(Windows+NT+6.1;+rv:14.0)+Gecko/20100101+Firefox/14.0.1 500 0 0 125 

2012-07-20 14:55:20 10.0.1.38 GET /favicon.ico - 80 DE\cin.bro 10.0.13.106 Mozilla/5.0+(Windows+NT+6.1;+rv:14.0)+Gecko/20100101+Firefox/14.0.1 404 0 2 0 

任何想法可能會導致無法登錄?任何線索我可以修復,使其工作?我整天都在研究,並沒有發現可能存在的問題。 感謝您收到任何信息。 謝謝 Cindy

+0

web.config文件中定義了哪種類型的身份驗證(如果有)? – 2012-07-20 18:16:32

+0

2012-07-20 18:40:24

+0

這是一個外部網站嗎? – 2012-07-20 19:01:34

回答

0

如果這是一個外部站點,那麼Windows身份驗證並不是真正的方法。但你仍然可以做到這一點,以下是我發現的一些應該幫助的鏈接。

Q&A about similar issue

Microsoft guide on how to implement

通常使用Windows身份驗證與內部系統,因爲用戶直接登錄到系統中,所有的證書是在那裏。但是,對於外部應用程序,情況並非總是如此,因爲您的家庭Windows帳戶和工作窗口帳戶不一樣,此外,您甚至可能無法使用外部位置的窗口。

+0

謝謝,安德魯。這是一個內部網站。我會看看你的鏈接,並從那裏去。謝謝! – 2012-07-24 16:40:39

+0

我已將Application Pool Identity從ApplicationPoolIdentity更改爲NetworkService,並且更改了我的錯誤。我現在正在得到一個SQLException - 用戶'DE \ S0062 $'登錄失敗。異常詳細信息:System.Data.SqlClient.SqlException:用戶'DE \ s0062 $'的登錄失敗。沒有相關的源代碼行。這是一個兩跳問題嗎?如果是這樣,我需要改變什麼? – 2012-07-24 18:14:33

+0

在連接字符串中,您是否指定了用戶名和密碼? – 2012-07-24 18:33:04

0

我遇到了另一個疑難雜症是本地環回地址的安全檢查,當你安裝一個DEV實例並修改hosts文件,使用完全合格的域名( FQDN)或簡單地當您使用自定義標頭瀏覽IIS站點並且名稱與服務器主機名不匹配時。雖然這對於生產服務器是必需的,但在設置開發人員環境時,這是一個問題。

This issue occurs when the Web site uses Integrated Authentication and has a name that is mapped to the local loopback address

主要有兩種方法來解決這個問題:

  1. 指定主機名(如果NTLM身份驗證需要首選方法)通過創建/更新多字符串值

    HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Lsa \ MSV1_0

  2. 禁用環回檢查(推薦不太方法 - 對生產服務器不使用)由以下注冊表DWORD值設置爲

    HKLM \系統\ CurrentControlSet \控制\ LSA \ DisableLoopbackCheck

請參閱本HTTP 401.1 - Unauthorized: Logon Failed - Microsoft Support article爲過詳細查看和註冊表設置。