在SimpleMembership中验证用户

4

在SimpleMembership中,Membership.ValidateUser()的替代方案是什么?我使用WebSecurity.Login来验证当前用户,但我遇到了这样一种情况:用户需要再次输入密码来更改某些用户设置。我应该再次使用WebSecurity.Login吗?似乎有点过度。


您可以通过以下方式解决:注销用户,存储将在登录后重定向使用的URL,再次登录用户,然后重定向它。 - Fals
谢谢您的留言,但我正在寻找更好的方法。 - Mike Cole
也许可以将用户重定向到备用登录页面,要求其输入凭据,然后如果一切正常,将其重定向到一个只能由服务器访问的非操作页面! - Fals
再次感谢,但那仍然是hackish的。在旧的Membership中,我只需要调用ValidateUser就可以了。我还抱有希望。 - Mike Cole
1个回答

8

我需要验证SimpleMembership中的用户,并且我认为我找到了一个很好的解决方案。您只需要获取成员提供程序并从那里调用该方法。以下是我的操作步骤:

public static bool ValidateUser(string userName, string password)
{
    var membership = (WebMatrix.WebData.SimpleMembershipProvider)Membership.Provider;
    return membership.ValidateUser(userName, password);
}

我为此创建了单元测试并验证其有效性。您可以在这里获取此成员身份提供程序可用的方法列表。
我将其添加到开源项目SimpleSecurity中,该项目旨在扩展SimpleMembership并提供如何使用SimpleMembership的示例。它还可以将SimpleMembership与您的MVC应用程序解耦

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接