2010-04-21 44 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(); 

一個行語法做這一切。

相關問題