gpt4 book ai didi

iis - Membership.ValidateUser 在 IIS 上始终返回 false

转载 作者:行者123 更新时间:2023-12-02 14:39:23 27 4
gpt4 key购买 nike

Membership.ValidateUser 方法适用于开发服务器(iis express 和 cassini)。但在我的 IIS 上(它作为我的开发计算机上的应用程序发布)它总是返回 false

即使用户已获得批准,也不会被锁定,并且用户名和密码正确。没有跟踪错误。 ?

http 请求 1:davutg-pc:6423/BpmService/Login?userName=abc&password=0035

结果 1: < bool 值>true

http 请求 2: davutg-pc/BPM/BpmService/Login?userName=abc&password=0035

结果2:< bool 值>

这是我的设置

<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"/>

我比较了machine.configs是相同的Framework 64和Framework。

它适用于开发服务器,但在 IIS 上始终返回 false。我可以使用 IIS查询不同的服务,但没有出现这样的问题。

此外:当我输入错误密码时,开发服务器的“FailedPasswordAttemptCount”增加。但对于 IIS,它不会改变。 IIS 出了什么问题。我只是调用 Membership.ValidateUser(user,pass)

任何建议将不胜感激!

最佳答案

解决了!希望这会节省某人的时间。

问题出在应用程序名称。

主机:端口/服务

主机/BPM/服务

注意:BPM 是您在 IIS 上指定的应用程序名称。

成员(member)加密算法使用“ApplicatonName”。当我设置应用程序时,我使用 BPM 作为应用程序名称。在开发服务器上,“名称”返回“/”。但它是 IIS 上的“BPM”!

我的所有旧密码都是使用“/”应用程序名称生成的。因此,请始终提供应用程序名称。阅读此article来自 Scott-Gu 的博客。

    public bool Login(string userName,string password)
{
var provider = Membership.Provider;
string name = provider.ApplicationName;

return Membership.ValidateUser(userName, password);
}

//错误

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

//右边一个

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

关于iis - Membership.ValidateUser 在 IIS 上始终返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14828185/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com