我正在与此作斗争。在Umbraco 6中,您可以使用以下方法轻松完成此操作:
Member.AddMemberToCache(
Member.GetMemberFromEmail(email),
true,
new TimeSpan(0, 30, 0)
);
我不会在umbraco 7成员的服务中找到同样的东西。
答案 0 :(得分:4)
在Umbraco 7中,您可以使用 Umbraco.Web.Security.MembershipHelper 类。
可以通过继承自:
Umbraco.Web.Mvc.UmbracoTemplatePage
Umbraco.Web.Mvc.UmbracoViewPage
Umbraco.Web.Mvc.UmbracoViewPage<T>
也在继承自:
的控制器中Umbraco.Web.WebApi.UmbracoApiController
Umbraco.Web.Mvc.SurfaceController
以编程方式登录会员: Members.Login("username", "password");
通过电子邮件提取会员 Members.GetByEmail("email"); // returns IPublishedContent
Umbraco.Web.Security.MembershipHelper
类的完整公共界面:
/// <summary> A helper class for handling Members </summary>
public class MembershipHelper
{
public MembershipHelper(ApplicationContext applicationContext, HttpContextBase httpContext);
public MembershipHelper(UmbracoContext umbracoContext);
/// <summary> Returns true if the current membership provider is the Umbraco built-in one. </summary>
public bool IsUmbracoMembershipProviderActive();
/// <summary> Updates the currently logged in members profile </summary>
/// <returns> The updated MembershipUser object </returns>
public Attempt<MembershipUser> UpdateMemberProfile(ProfileModel model);
/// <summary> Registers a new member </summary>
/// <param name="model"/><param name="status"/>
/// <param name="logMemberIn">true to log the member in upon successful registration </param>
public MembershipUser RegisterMember(RegisterModel model, out MembershipCreateStatus status, bool logMemberIn = true);
/// A helper method to perform the validation and logging in of a member - this is simply wrapping standard membership provider and asp.net forms auth logic.
public bool Login(string username, string password);
/// <summary> Logs out the current member </summary>
public void Logout();
public IPublishedContent GetByProviderKey(object key);
public IPublishedContent GetById(int memberId);
public IPublishedContent GetByUsername(string username);
public IPublishedContent GetByEmail(string email);
/// <summary> Returns the currently logged in member as IPublishedContent </summary>
public IPublishedContent GetCurrentMember();
/// <summary> Returns the currently logged in member id, -1 if they are not logged in </summary>
public int GetCurrentMemberId();
/// Creates a new profile model filled in with the current members details if they are logged in which allows for editing
/// profile properties
public ProfileModel GetCurrentMemberProfileModel();
/// Creates a model to use for registering new members with custom member properties
public RegisterModel CreateRegistrationModel(string memberTypeAlias = null);
/// Returns the login status model of the currently logged in member, if no member is logged in it returns null;
public LoginStatusModel GetCurrentLoginStatus();
/// <summary> Check if a member is logged in </summary>
public bool IsLoggedIn();
/// Returns true or false if the currently logged in member is authorized based on the parameters provided
public bool IsMemberAuthorized(bool allowAll = false, IEnumerable<string> allowTypes = null, IEnumerable<string> allowGroups = null, IEnumerable<int> allowMembers = null);
/// Changes password for a member/user given the membership provider and the password change model
public Attempt<PasswordChangedModel> ChangePassword(string username, ChangingPasswordModel passwordModel, string membershipProviderName);
public Attempt<PasswordChangedModel> ChangePassword(string username, ChangingPasswordModel passwordModel, MembershipProvider membershipProvider);
}