【发布时间】: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 似乎很奇怪。两者都使用有什么“臭味”吗?
【问题讨论】:
-
他们应该叫它
LimitedMembershipProvider或SimpleMembershipWithConfusingUpgradePathProvider -
会员很臭;在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