Dav*_*büz 7 iis cassini asp.net-membership web-config
Membership.ValidateUser方法适用于开发服务器(iis express和cassini).但是在我的IIS上(它作为我的开发机器上的应用程序发布)它总是返回false.
即使用户已获批准,也未锁定,用户名和密码均正确无误.没有跟踪错误.?
http请求1: davutg-pc:6423/BpmService /登录?userName = abc&password = 0035
结果1: <boolean> true </ boolean>
http请求2: davutg-pc/BPM/BpmService /登录?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"/>
Run Code Online (Sandbox Code Playgroud)
我比较的machine.configs与Framework 64和Framework相同.
它适用于开发服务器,但在IIS上始终返回false.我可以用IIS 查询不同的服务,没有这样的问题.
另外: 当我为开发服务器输入错误密码"FailedPasswordAttemptCount"时.但它不会改变IIS.IIS出了什么问题.我只是调用Membership.ValidateUser(用户,传递)
任何建议将不胜感激!
解决了!希望这能节省一些人的时间.
问题是应用程序名称.
主机:端口/服务
主机/ BPM /服务
注意:BPM是您在IIS上提供的应用程序名称.
成员资格加密算法使用"ApplicatonName".当我设置应用程序时,我使用BPM作为应用程序名称.在开发服务器上,"name"返回"/".但它在IIS上的"BPM"!
我的所有旧密码都是使用"/"appliacion名称生成的.所以始终提供应用程序名称.阅读这篇文章从斯科特谷的博客.
public bool Login(string userName,string password)
{
var provider = Membership.Provider;
string name = provider.ApplicationName;
return Membership.ValidateUser(userName, password);
}
Run Code Online (Sandbox Code Playgroud)
//错了
<membership>
<providers>
<clear/>
<add name="AspNetSqlMembershipProvider"
type="System...bla bla"
connectionStringName="LocalSqlServer"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="true"
requiresUniqueEmail="false"
passwordFormat="Hashed"
maxInvalidPasswordAttempts="5"
minRequiredPasswordLength="7"
minRequiredNonalphanumericCharacters="1"
passwordAttemptWindow="10"
passwordStrengthRegularExpression=""
applicationName="/" //Wrong
/>
</providers>
</membership>
Run Code Online (Sandbox Code Playgroud)
//正确对象,真爱
<membership>
<providers>
<clear/>
<add name="AspNetSqlMembershipProvider"
type="System.Web.Security.S.. bla bla"
connectionStringName="LocalSqlServer"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="true"
requiresUniqueEmail="false"
passwordFormat="Hashed"
maxInvalidPasswordAttempts="5"
minRequiredPasswordLength="7"
minRequiredNonalphanumericCharacters="1"
passwordAttemptWindow="10"
passwordStrengthRegularExpression=""
applicationName="MyAPPNAME" //Well :)
/>
</providers>
</membership>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6351 次 |
| 最近记录: |