繁体   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