【问题标题】:SimpleMembershipProvider vs WebSecuritySimpleMembershipProvider 与 WebSecurity
【发布时间】:2013-04-10 19:12:48
【问题描述】:

我有一个带有存储库层的 WebAPI 项目。对于账户相关的方法,我这里不知道用什么方法:

public class RepositoryService : IRepositoryService
    {
        private readonly SimpleMembershipProvider _membership;
        public RepositoryService()
          {
            _membership = (SimpleMembershipProvider)Membership.Provider;
          }

检查用户是否存在:

    public bool UserExists(string userName)
    {
        return WebSecurity.UserExists(userName);
    }

public bool UserExists(string userName)
{
    return _membership.GetUser(userName, true) != null;
}

我想知道,因为在其他地方我认为我必须使用 _membership(例如,获取特定用户):

public MembershipUser GetUser(string userName)
    {
        return _membership.GetUser(userName, false);
    }

但我必须使用 _membership 和 WebSecurity 似乎很奇怪。两者都使用有什么“臭味”吗?

【问题讨论】:

  • 他们应该叫它LimitedMembershipProviderSimpleMembershipWithConfusingUpgradePathProvider
  • 会员很臭;在VS2013中也是如此。如何在 System.Web.Providers.DefaultMembershipProvider 中重置密码。 ...您不能将现有 MembershipProvider(包括 System.Web.Providers 中的通用提供程序)与需要 SimpleMembershipProvider 的 API 一起使用,包括 WebMatrix.WebData.WebSecurity 或 Microsoft.Web.WebPages 中的任何调用.OAuth.OAuthWebSecurity. link

标签: asp.net-mvc-3 authentication asp.net-web-api security


【解决方案1】:

以下情况似乎表明你没事:

来自 WebSecurity class 上的 MSDN 文档 http://msdn.microsoft.com/en-us/library/gg547905%28v=vs.111%29.aspx

在幕后,WebSecurity 类与 ASP.NET 交互 成员提供者依次执行较低级别的工作,即 需要执行安全任务。默认成员 ASP.NET 网页中的 provider 是 SimpleMembershipProvider 类。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-17
    • 1970-01-01
    • 2013-05-20
    • 1970-01-01
    • 1970-01-01
    • 2011-07-04
    • 2013-09-21
    相关资源
    最近更新 更多