无法从自定义RoleProvider调用方法

时间:2012-09-20 22:40:26

标签: c# .net roleprovider

我为C#.NET 4.0创建了一个自定义RoleProvider。我已经实现了所有必需的方法,并且我还添加了一些自己的方法。我已将Web.config更改为使用我的自定义RoleProvider,但我无法调用任何自定义方法。例如,我已将以下方法添加到我的自定义RoleProvider中:

public void Myfunc(string user)
{
  var a = user;
}

但是,当我尝试使用此剪辑调用该方法时:

Roles.MyFunc("testuser");

我没有得到Myfunc函数的intellisense,VS给我错误“System.Web.Security.RoleProvider的未知方法Myfunc。我可以告诉我正在加载我的自定义RoleProvider,因为我可以在其中一个中设置断点必需/重写的方法,它命中自定义RoleProvider。但是如何调用RoleProvider的自定义函数?

2 个答案:

答案 0 :(得分:1)

MyFunc不是RoleProvider的成员。

您是否尝试创建扩展方法?
那你的方法应该是这样的:

public static void Myfunc(this System.Web.Security.RoleProvider roleProvider, string user)
{
  var a = user;
}

如果Roles是您自己的班级并且您已实施MyFunc,那么您需要向我们展示更多代码。但从它的外观来看RolesRoleProvider的一个实例,或者如果它是你自己的类,那么你需要将MyFunc方法设为静态或创建Roles的实例

答案 1 :(得分:0)

听起来您的自定义角色提供程序设置正确。从那里你需要做的就是将System.Web.Security.Roles.Provider强制转换为自定义类并调用自定义方法。

它看起来像这样:

((MyProject.Helpers.CustomRoleProvider)System.Web.Security.Roles.Provider).MyFunc( “TESTUSER”);