我更精确地构建了一个自定义成员hipshipprovider。

因此,我有一个自定义会员使用者。

public class CustomMemberShipUser : MembershipUser
{
    public CustomMemberShipUser (
        string providerName,
        string email,
        object providerUserKey,
        string name,
        string passwordQuestion,
        string comment,
        bool isApproved,
        bool isLockedOut,
        DateTime creationDate,
        DateTime lastLoginDate,
        DateTime lastActivityDate,
        DateTime lastPasswordChangedDate,
        DateTime lastLockoutDate
        ): base(
            providerName, email, providerUserKey, name, passwordQuestion,
            comment, isApproved, isLockedOut, creationDate, lastLoginDate,
            lastActivityDate, lastPasswordChangedDate, lastLockoutDate)
    {
    }
}

在MemberHippRovider的Getuser函数中,我获取用户数据并将其放入Custommemhipuser中。

public override MembershipUser GetUser(string email, bool userIsOnline)
    {
        User u = _db.Users.Where(x => x.Email == email).First();
        CustomMemberShipUser customUser = new CustomMemberShipUser (
                                        "CustomMemberShipUser ",
                                        u.Email, 
                                        u.id,
                                        u.Email, 
                                        "", 
                                        "", 
                                        true, 
                                        false, 
                                        u.CreateDate, 
                                        DateTime.MinValue, 
                                        DateTime.MinValue, 
                                        DateTime.MinValue, 
                                        DateTime.MinValue);
        return customUser ;
    }

如您所见,我将电子邮件用作会员的名称,我不需要大多数其他参数。

有没有办法使呼叫更简单?我不想用空字符串和最小的日期值使会员使用者将会员人数化。

提前致谢

有帮助吗?

解决方案

您能适应您的Custommemhipuser为您做“填充”

   public class CustomMemberShipUser : MembershipUser
    {
        public CustomMemberShipUser (
            string email,
            object providerUserKey,
            ): base(
                "CustomMemberShipUser", email, providerUserKey, email, String.Empty,
                String.Empty, true, false, DateTime.MinValue, DateTime.MinValue,
                DateTime.MinValue, DateTime.MinValue, DateTime.MinValue)
        {
        }
    }

它无法解决问题,但它将整理您的提供商

public override MembershipUser GetUser(string email, bool userIsOnline)
    {
        User u = _db.Users.Where(x => x.Email == email).First();
        CustomMemberShipUser customUser = new CustomMemberShipUser (u.Email, u.id);
        return customUser ;
    }

我认为您的Custommembershiper正在公开一些您没有向我们展示的其他属性。就目前而言,您可以返回会员使用者。上面的唯一受益者您的Custommemhipers为您提供的是您的Custommembershipprovider中更清洁的结构

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top