我正在将运行IIS 7.5的Windows Server 2008R2与运行IIS 10的Windows 2016 Server之间进行应用程序传输。该应用程序的登录系统正在使用带有LDAP的表单身份验证,以允许用户登录并进行更改。用户可以在2008R2服务器上登录而没有任何问题,从而创建了必要的cookie以供使用。但是,在2016 Server上,登录系统身份验证似乎已中断。似乎已创建了cookie,但是在创建cookie之后,系统似乎无法找到用户。此外,在不运行任何登录过程的特定页面上,该应用程序似乎正在使用Windows身份验证,而不是显式地告知要使用的窗体身份验证。 web.config中应用程序的设置专门告诉它使用表单而不是Windows身份验证。
应用程序的web.config包含以下有关连接字符串的信息:
<connectionStrings>
<add name="ADConnectionString" connectionString="LDAP://OURLDAPSYSTEM"/>
</connectionStrings>
此系统的LDAP项目仅用于验证,不用于权限。
以及身份验证和成员身份:
<system.web>
<authentication mode="Forms">
<forms name=".ADAuthCookie" loginUrl="~/" timeout="60" slidingExpiration="true" protection="All"/>
</authentication>
<membership defaultProvider="ADMembershipProvider">
<providers>
<add name="ADMembershipProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider" connectionStringName="ADConnectionString" attributeMapUsername="sAMAccountName"/>
</providers>
</membership>
</system.web>
在执行登录过程的控制器中:
userLoginSuccess = Membership.ValidateUser(model.UserName, model.Password);
//Make call to another DB to check permissions for usage
FormsAuthentication.SetAuthCookie(model.UserName, true);
在服务器上的IIS上,应用程序的身份验证显示如下: Authentication for the application
整个网站的身份验证显示如下:Authentication for the Site
每个匹配Windows 2008R2服务器上已经存在的内容。
任何人都不知道Windows 2016服务器上将进行哪些更改以阻止身份验证与2008R2相同的工作?如果是这样,我将如何解决此问题?