Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法扩展ASP.NET成员资格提供程序?_.net_Asp.net_Asp.net Mvc_Asp.net Membership - Fatal编程技术网

有没有办法扩展ASP.NET成员资格提供程序?

有没有办法扩展ASP.NET成员资格提供程序?,.net,asp.net,asp.net-mvc,asp.net-membership,.net,Asp.net,Asp.net Mvc,Asp.net Membership,我想扩展静态类public static class Membership和public abstract class Membership provider有什么方法可以做到这一点吗?有关如何通过继承MembershipProvider来创建自定义成员资格提供程序的完整详细说明,请参见MSDN。至于静态成员类,扩展它是没有意义的;不能重写静态方法。无论如何,它只是委托给MembershipProvider的一个实例,所以您不想扩展MembershipClass,您只想设置您的配置以便调用新的M

我想扩展静态类public static class Membership和public abstract class Membership provider有什么方法可以做到这一点吗?

有关如何通过继承MembershipProvider来创建自定义成员资格提供程序的完整详细说明,请参见MSDN。至于静态成员类,扩展它是没有意义的;不能重写静态方法。无论如何,它只是委托给MembershipProvider的一个实例,所以您不想扩展MembershipClass,您只想设置您的配置以便调用新的MembershipProvider。

对于那些想要扩展现有提供程序的人,例如:

using System;
using System.Web;
using System.Web.Security;

namespace System.Web.MVC_Extensions
{
    public static class SqlMembershipProviderExtensions
    {
        public static string GenerateAccessToken(this MembershipProvider provider, string username, int expiresInMinutes)
        {
            if (provider.GetType().Name != "SqlMembershipProvider")
                throw new NotSupportedException("Access tokens only supported by SqlMembershipProvider.");

            ...
        }

        public static bool ValidateAccessToken(this MembershipProvider provider, string username, string token)
        {
            if (provider.GetType().Name != "SqlMembershipProvider")
                throw new NotSupportedException("Access tokens only supported by SqlMembershipProvider.");

            ...
        }
    }
}