我正在尝试在asp.net mvc4上实现授权,因此我尝试使用WebSecurity。
WebSecurity.InitializeDatabaseConnection("tradefairindia", "Users", "Id", "Username", false);
我已经将它放入Global.asax中,但是出现了错误:“找不到默认角色提供程序(Default Role Provider could not be found)”。
在互联网上,我读到需要在我的web.config文件中添加以下代码:
<roleManager enabled="true" defaultProvider="AspNetSqlRoleProvider">
。但由于之前的错误,我已经添加了它。如何解决这个问题?
编辑:
当我将其更改为
defaultProvider="SimpleRoleProvider"
时,它会给我一个新的错误。它说:
The type or namespace name 'Data' does not exist in the namespace 'WebMatrix' (are you missing an assembly reference?)
defaultProvider="MyRoleProvider"
,只要该名称对应于<providers>
部分中的一个名称。在那里,你需要指定实际使用的库。所以在<add name="MyRoleProvider" type="WebMatrix.WebData.SimpleRoleProvider, WebMatrix.WebData">
中,你表明要使用来自 WebMatrix.WebData 库的 SimpleRoleProvider,并将其命名为'MyRoleProvider'。如果你不将 "Copy Local" 设置为 True,则在编译时 WebMatrix.WebData.dll 不会被复制到 bin 文件夹中。因为它默认不是 GAC 的一部分,所以你的程序集找不到它。 - flip