登录会员以编程方式在Umbraco 7上

问题描述 投票:4回答:1

我正在与此作斗争。在Umbraco 6中,您可以使用以下方法轻松完成此操作:

Member.AddMemberToCache(
    Member.GetMemberFromEmail(email),
    true,
    new TimeSpan(0, 30, 0)
);

我不会在umbraco 7成员的服务中找到同样的东西。

login umbraco umbraco7
1个回答
4
投票

在Umbraco 7中,您可以使用Umbraco.Web.Security.MembershipHelper类。 可以通过继承自以下内容的视图中的Members属性访问它的实例:

  • 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);
  }
© www.soinside.com 2019 - 2024. All rights reserved.