2010-04-21 59 views
0

我已经创建了我自己的自定义角色提供程序类“SGI_RoleProvider”并进行了正确配置。 一切工作正常。有没有办法调用自定义角色提供程序类的自定义方法

假设我已经添加了一个名为“SayHello()”的公共方法,那么我怎么称呼它。因为如果我使用角色,那么该方法不会显示。如果我强制使用Roles.SayHello(),那么编译器会给出错误。

任何建议我怎么能这样称呼。因为创建一个SGI_RoleProvider的新实例是没有意义的。

感谢分享你的时间。

回答

3
var myProvider = Roles.Provider as SGI_RoleProvider; 
myProvider.SayHello(); 

假设你已经正确定义提供商的默认提供

+0

感谢哥们!但是即使铸造也不行,因为角色是一个静态类。顺便说一下我使用C#。 – IrfanRaza 2010-04-21 20:55:35

+0

我测试了这个代码,它的工作原理是,我不是投射Roles类,而是Roles类的Provider属性,它是RoleProvider类型。请参阅http://msdn.microsoft.com/en-us/library/system.web.security.roles.provider.aspx。我写的代码是C#,也许你使用的是框架2.0,所以你可以写作 CustomProvider myProvider = Roles.Provider作为CustomProvider; myProvider.SayHello();改为 。 祝你好运! – uvita 2010-04-21 23:55:06

+0

太棒了!谢谢uvita!有用。其实我忘记使用Provider属性。我正在角色扮演角色。是的,我正在考虑VB中的代码。 – IrfanRaza 2010-04-22 06:48:14

0

也许你可以这样做

((SGI_RoleProvider)Roles.Provider).SayHello(); 

一个行语法做这一切。

相关问题