使用MVC 2.0 webconfig创建自定义RoleProvider

4

我有一个自定义的MembershipProvider和自定义的RoleProvider。我通过创建一个实现MembershipProvider类的SimpleMembershipProvider类来创建自定义MembershipProvider。然后我更改了我的web.config并运行,一切正常。

因此,我使用相同的方法创建了自定义RoleProvider。没有什么特别的,只是创建了一个实现RoleProvider类的SimpleRoleProvider类。但是当我更改了web.config文件并运行解决方案时,我得到以下错误信息:

Web.Config

<membership defaultProvider="DashboardMembershipProvider">
<providers>
    <clear/>
    <add name="SimpleMembershipProvider" 
        type="Dashboard.Web.Controlling.Account.SimpleMembershipProvider" />
    </providers>
</membership>

<roleManager enabled="true" defaultProvider="DashboardRoleProvider">
    <providers>
        <clear/>
        <add name="DashboardRoleProvider" 
            type="Dashboard.Web.Controlling.Account.DashboardRoleProvider" />
    </providers>
</roleManager>


Configuration Error
Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.

Parser Error Message: No parameterless constructor defined for this object.

Source Error
Line 78:         <add name="SimpleRoleProvider" 
Line 79:            type="Dashboard.Web.Controlling.Account.SimpleRoleProvider" />

所以我在网上搜索了一下。并尝试了type属性,但是出现了以下错误:

 Configuration Error
Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.

Parser Error Message: Could not load file or assembly 'Dashboard.Web.Controlling.Account' or one of its dependencies. The system cannot find the file specified.

Source Error:
Line 78:         <add name="SimpleRoleProvider" 
Line 79:              type="Dashboard.Web.Controlling.Account.SimpleRoleProvider,Dashboard.Web.Controlling.Account" />

您有关于如何使CustomRoleProvider工作的建议吗?非常感谢您的帮助!

2个回答

3

根据你收到的第一个异常,DashboardRoleProvider需要有一个无参构造函数。否则框架将无法实例化您的角色提供程序。

在第二个示例中,您可能希望改用完全限定的程序集名称。

Michael


2
<add name="SimpleRoleProvider"            type="Dashboard.Web.Controlling.Account.SimpleRoleProvider,Dashboard.Web.Controlling.Account" />

第一个逗号后的类型部分是程序集名称,您确定您的程序集名称不只是Dashboard.Web吗?

右键单击项目并选择属性,即可找到您的程序集名称。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接