我有一個通過wcf服務訪問數據庫的web應用程序。這個想法是使用wcf服務從Web應用程序中提取數據。所有這些工作正常,但我也使用內置的角色提供程序使用SqlRoleManager,它直接訪問aspnetdb數據庫。我想通過在wcf服務中創建一個自定義角色提供程序,然後通過wcf服務訪問它來抽象角色提供程序。我可以通過WCF服務創建自定義角色提供者嗎?
我已經創建了自定義角色提供程序,它工作正常,但現在我需要將它放在wcf服務中。
因此,在我試圖通過WCF服務試圖獲得此功能之前,我在訪問roleprovider類的web應用程序中創建了第二個類,並更改了我的web配置roleprovider參數以使用該類。所以我roleprovider類被稱爲 「UcfCstRoleProvider」 和我的web.config看起來像這樣:
<roleManager
enabled="true"
defaultProvider="UcfCstRoleProvider">
<providers>
<add
name="UcfCstRoleProvider"
type="Ucf.Security.Wcf.WebTests.UcfCstRoleProvider, Ucf.Security.Wcf.WebTests"
connectionStringName="SqlRoleManagerConnection"
applicationName="SMTP" />
</providers>
</roleManager>
我班開始是這樣的:
public class UcfCstRoleProvider : RoleProvider
{
private readonly WindowsTokenRoleProvider _roleProxy = new WindowsTokenRoleProvider();
public override string ApplicationName
{
get
{
return _roleProxy.ApplicationName;
}
set
{
_roleProxy.ApplicationName = value;
}
}
正如我所說的,這工作正常。所以第二個類被稱爲BlRoleProvider,它與roleprovide具有相同的屬性和參數,但不實現RoleProvider。我改變web.config中指向此類像這樣:
<roleManager
enabled="true"
defaultProvider="BlRoleProvider">
<providers>
<add
name="UcfCstRoleProvider"
type="Ucf.Security.Wcf.WebTests.BlRoleProvider, Ucf.Security.Wcf.WebTests"
connectionStringName="SqlRoleManagerConnection"
applicationName="SMTP" />
</providers>
</roleManager>
但我得到這個錯誤。 「提供者必須實現類」System.Web.Security.RoleProvider「。」
我希望我已經解釋得很清楚,以顯示我正在嘗試做什麼。如果我可以讓角色提供者通過同一個應用程序中的另一個類來工作,我相信它可以通過WCF服務工作,但是如何才能通過此錯誤?
或者我轉錯了方向,有更好的方法去做我想做的事?