让WCF加载自定义角色提供程序时出错
本文关键字:程序 出错 角色 WCF 加载 自定义 | 更新日期: 2023-09-27 18:09:04
我一直在尝试为我的WCF服务获得一个自定义角色提供程序。它们托管在IIS 7中,但无论我怎么做,似乎都无法让它们真正工作。我刚得到无法找到默认角色提供程序。错误。我的网络。配置如下:
<system.web>
<compilation debug="false" targetFramework="4.0" />
<roleManager enabled="true" defaultProvider="CustomValidators.WaveRoleProvider, CustomValidators">
<providers>
<clear/>
<add name="test" type="CustomValidators.WaveRoleProvider, CustomValidators"/>
</providers>
</roleManager>
</system.web>
提供RoleProvider的实际功能如下:
namespace CustomValidators
{
public class WaveRoleProvider : RoleProvider
{
public override string[] GetRolesForUser(string username)
{
return string[0];
}
public override bool IsUserInRole(string username, string roleName)
{
return true;
}
public override void AddUsersToRoles(string[] usernames, string[] roleNames)
{
return;
}
public override string ApplicationName
{
get
{
return "test";
}
set
{
}
}
public override void CreateRole(string roleName)
{
return;
}
public override bool DeleteRole(string roleName, bool throwOnPopulatedRole)
{
return true;
}
public override string[] FindUsersInRole(string roleName, string usernameToMatch)
{
return new string[0];
}
public override string[] GetAllRoles()
{
return new string[0];
}
public override string[] GetUsersInRole(string roleName)
{
return new string[0];
}
public override void RemoveUsersFromRoles(string[] usernames, string[] roleNames)
{
return;
}
public override bool RoleExists(string roleName)
{
return true;
}
}
}
显然,我最终将用实际的逻辑填充所有这些,而不仅仅是返回虚拟数据,但这至少应该加载。
我已经检查过了,IIS确实像它应该的那样加载程序集,如果我重命名类或程序集,它会产生不同的错误,所以我很确定一切都应该加载,但无论我尝试什么,我总是找不到默认角色提供程序。我一直在谷歌上搜索这个,并在Stack Overflow上查看,但我似乎找不到这是为什么。我知道现在我的类是非常基础的,但是
修复了我自己的问题。问题是,我应该在defaultProvider中指向我的提供者的名称,而不是类。
<system.web>
<compilation debug="false" targetFramework="4.0" />
<roleManager enabled="true" defaultProvider="test">
<providers>
<clear/>
<add name="test" type="CustomValidators.WaveRoleProvider, CustomValidators"/>
</providers>
</roleManager>
</system.web>