不确定这是属于VS 2010还是升级后的框架,但是......我们正在使用Oracle成员资格提供程序对用户进行身份验证。升级之前一切正常,但现在尽管有效凭据,Membership.ValidateUser(user, password)
仍会返回false
。没有异常抛出,因此很难确定问题可能是什么。 VS 2010中的网站管理工具仍然能够管理用户和角色(或多或少),因此我没有理由质疑连接。问题可能是什么?
答案 0 :(得分:7)
答案(根据this post)是在Web.config中指定hashAlgorithmType="SHA1"
:
<membership defaultProvider="OracleMembershipProvider" hashAlgorithmType="SHA1"/>
这并没有解决现有用户的问题,但新创建的用户现在可以登录。
答案 1 :(得分:1)
听起来有点像我遇到的问题......
将一个machineKey元素添加到web.config而不是hashAlgorithmType =“SHA1”修复了问题..但我仍然不明白为什么我需要把它放在那里...无法找到任何文档..
你可以在这里查看我的问题.. The user name or password provided is incorrect. in MVC 3 Internet Application
答案 2 :(得分:0)
您可能遇到了machineKey差异。
在web.config中 - 隐式machineKey
部分使用自动生成的加密和验证密钥,这些密钥再次针对应用ID(AutoGenerate,IsolateApps
)进行了锁定。
您是在使用其他应用程序实例还是在其他计算机上进行测试?
Oracle会员提供商是2.0还是4.0?
这只是在黑暗中刺伤,也许这会引导你找到解决方案。
来自.NET Framework 4 Migration Issues
会员类型
ASP.NET成员资格中使用的某些类型(例如,System.Web.Security.MembershipProvider)已从System.Web.dll移动到System.Web.ApplicationServices.dll程序集。移动类型是为了解决客户端和扩展.NET Framework SKU中类型之间的架构分层依赖关系。
从早期版本的ASP.NET升级并使用已移动的成员资格类型的类库在ASP.NET 4项目中使用时可能无法编译。如果是这样,请在类库项目中将引用添加到System.Web.ApplicationServices.dll
击>