Membership.ValidateUser方法在开发服务器(iis express和cassini)上均有效。
但是在我的IIS上(作为开发机器上的应用程序发布),它总是返回false,即使用户已经批准,未被锁定,并且用户名和密码正确,也没有任何错误迹象。
HTTP请求1:davutg-pc:6423/BpmService/Login?userName=abc&password=0035
结果1:<boolean>true</boolean>
HTTP请求2:davutg-pc/BPM/BpmService/Login?userName=abc&password=0035
结果2:<boolean>false</boolean>
这是我的设置。
<roleManager enabled="true" defaultProvider="MySQLRoleProvider"/>
<machineKey validationKey="E8B40EEA5A8EFC6F...key" decryptionKey="385..." validation="SHA1" />
<membership defaultProvider="MySQLMembershipProvider" hashAlgorithmType="SHA1">
<providers>
<remove name="MySQLMembershipProvider" />
<add type="MySql.Web.Security.MySQLMembershipProvider, MySql.Web, Version=6.5.5.0, Culture=neutral,
PublicKeyToken=c5687fc88969c44d"
name="MySQLMembershipProvider"
connectionStringName="LocalMySqlServer"
minRequiredPasswordLength="3"
minRequiredNonalphanumericCharacters="0"
requiresUniqueEmail="false"
requiresQuestionAndAnswer="false"
passwordFormat="Encrypted"/>
我比较了Framework 64和Framework下的machine.config文件,它们是一样的。
在开发服务器上可以运行,但在IIS上总是返回false。我可以使用IIS查询不同的服务,没有这样的问题。
此外: 当我输入错误的密码时,“FailedPasswordAttemptCount”会增加到开发服务器中。 但是在IIS中不会改变。IIS出了什么问题。我只是调用Membership.ValidateUser(user,pass)
任何建议将不胜感激!