优雅的Asp.Net MVC 3自定义成员资格包装类,具有扩展(自定义)方法和属性

时间:2011-05-11 15:15:21

标签: asp.net-mvc-3 custom-membershipprovider

我正在尝试编写自定义成员资格类。它似乎可以正常工作,继承Membership类并为所有包含的必需项提供函数(验证用户,创建用户,删除用户,已批准等)。

然而,当我遇到问题时,我尝试添加属性或方法。

由于所有其他属性和方法都是密封类中的公共覆盖类, 附加属性不会显示。

比如说(仅限示例,而非“真实”代码):

public sealed class Membership : MembershipProvider
{
    public override string ApplicationName
    {
        get
        {
            return "myApp";
        }
    }
    public string myValue { get;set;}
}

现在,我理解为什么当我尝试使用Membership.myValue时,myValue不会显示,但是Membership.ApplicationName将会显示。

我的问题是,如何扩展会员资格以显示自定义项目?我是否完全抛弃Membership.xxx并编写一个包装类?如果是这样,怎么样?我可以在世界上找到有关如何创建自定义成员资格类的所有文档。如果我只使用所有可用选项,我有一个正常工作的自定义成员资格。我有一个自定义角色提供程序和一个自定义配置部分来存储所有内容,它是最好的朋友。

我没有的是一个优雅的解决方案。

我希望最终结果是我使用一个引用(例如Membership.xxx或myClass.xxxx)来引用所有成员资格项+自定义项。

请提供有关如何实施或链接到将解析自定义方法项的相应项的示例。

2 个答案:

答案 0 :(得分:1)

每当你引用会员资格实例时,你只需将其转换为你的班级类型即可。

答案 1 :(得分:0)

如果您不想在实例中来回投射,可以查看Extension Methods