簡體   English   中英

更改ConnectionString時ASP.NET MVC 4 Windows身份驗證不起作用,盡管兩者都具有相同的用戶名/密碼

[英]ASP.NET MVC 4 windows authentication not working when changing the ConnectionString although both have the same username/password

在我們的ASP.NET MVC 4應用程序中,我們對InternAt網站使用Windows身份驗證。 該應用程序有一個管理頁面,用戶可以在其中搜索活動目錄中的域用戶,並為用戶分配角色。 角色是自定義角色,而不是Windows組(客戶端不想僅為此應用程序創建Windows組)。 在將應用程序從開發服務器部署到生產環境之前,我使用ProductionDomain \\ myProsuctionWinLogin代碼創建了一個用戶(我也在生產服務器域中)。 部署后,我為將要管理應用程序的生產用戶創建了一個管理員用戶(Windows登錄名)。

開發服務器位於我們公司的域中,生產服務器位於我們客戶的公司域中。

當我們將數據庫從公司服務器部署到客戶的服務器(生產)時,我從公司域登錄的Windows登錄信息也被遷移到生產服務器。

我們被允許將生產數據庫的副本復制到我們的公司服務器以進行測試/修復。 請注意,測試服務器和生產服務器的數據庫登錄名和密碼完全相同,並且我們已經測試了當我們通過SQL Server Management Studio直接登錄數據庫時,在測試服務器上可以使用相同的登錄名/密碼。

但是,當我們將數據庫復制到我們的服務器並通過僅將生產服務器名稱更改為我們的測試服務器來更改web.config中的連接字符串時,該應用會出現以下錯誤:“未經授權的訪問”。

另一方面,如果將服務器名稱更改為最初開發應用程序的開發服務器,並且我們的舊數據庫具有相同的SQL登錄名/密碼,則該應用程序將開始運行。 以下是web.config中的連接字符串(使用虛構的名稱表示隱私。對於生產,開發和測試服務器,該連接字符串完全相同,但服務器名稱除外):

<add connectionString="Server=ProdServer;Database=myDb;User ID=aUserID;Password=aUSerPassword" name="AonnectionString" providerName="System.Data.SqlClient" />

我已經驗證了所有三台服務器上的aspnet_Roles表具有完全相同的角色,並且所有三台服務器上的表aspnet_Users中也有我的Windows登錄名(來自我的公司域)。

有人可以解釋為什么該應用程序可以在開發服務器上運行,而不能在測試服務器上運行嗎?解決方案是什么?

謝謝..Nam

檢查sql server登錄是否配置正確!

暫無
暫無

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

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