ASP.NET中的多个成员资格提供程序(web.config + sql)

时间:2011-04-01 14:03:34

标签: asp.net asp.net-membership membership-provider sqlmembershipprovider

我知道这个问题已被提出(并已经回答),但我相信我的情况是独一无二的。

我们正在使用ASP.NET SqlMembershipProvider。但是,我们还希望通过将用户直接添加到web.config来保护一些安全性较低的内容,如此...

<forms loginUrl="login.aspx" defaultUrl="default.aspx">
  <credentials passwordFormat="Clear">
    <user name="user1" password="123" />
    <user name="user2" password="456" />
  </credentials>
</forms>

是否可以将此方法与SQL成员资格提供程序一起使用?如果是这样,怎么样?

我知道这样做是不好的做法。这只是我们将部分网站移动到asp.net应用程序中的垫脚石。我们希望这些密码可以在不进入数据库的情况下轻松编辑。

2 个答案:

答案 0 :(得分:0)

  

我们想要一些密码   无需去,就可以轻松编辑   数据库。

我不理解的是什么逻辑。为什么您需要其中两个,而内置功能可以在会员提供商中轻松更改密码。

现在,您可以同时使用这两种方法,但是您需要使用机制来决定何时使用或必须进行两次身份验证,即首先根据web.config验证用户,如果失败,则对成员资格DB进行验证。

但是,如果您明确依赖会员资格,那么其中一些内容将无法在您的网站上运行。

所以身份验证,是的,它是可行的。

答案 1 :(得分:0)

我在这里找到了答案:ASP.NET - Login Control with Credentials in web.config file

对于我的ValidateUser逻辑,我需要使用:

if (_provider.ValidateUser(username, password)) {
  return true;
}
else {
  return FormsAuthentication.Authenticate(username, password);
}

我知道如何使用提供程序进行身份验证,但密钥是ELSE子句,并使用web.config凭据进行身份验证。