2015-09-06 38 views
0

我想爲我的應用程序添加roleprovider,但由於解析器錯誤,我遇到了麻煩。解析器錯誤消息:無法從程序集加載類型

這裏是我的文件:

enter image description here

這是我的web配置:

<roleManager defaultProvider ="roleProvider" enabled="true"> 
    <providers> 
     <add name="roleprovider" type="MvcApplication6.roleprovider,MvcApplication6"/> 
    </providers> 
    </roleManager> 

我一直在得到該Parser Error Message: Could not load type 'roleprovider' from assembly 'MvcApplication6'

我嘗試了幾種方法,如添加到App_code

我該如何解決此問題?我嘗試了其他解決方案,但他們不適合我。我可能做錯了,所以請幫助。

回答

1

您可以創建一個文件夾,名爲Helper和嘗試這個辦法:

<roleManager cacheRolesInCookie="true" defaultProvider="CustomRoleProvider" enabled="true"> 
     <providers> 
     <clear /> 
     <add name="CustomRoleProvider" type="MvcApplication6.Helper.CustomRoleProvider"/> 
     </providers> 
</roleManager> 

一件事:確保你實現一個正確的方式CustomRoleProvider:使用系統 ; using System.Web.Security;

namespace MvcApplication6.Helper 
{ 
    public class CustomRoleProvider : RoleProvider 
    { 
     public override bool IsUserInRole(string username, string roleName) 
     { 
      if (username.ToLowerInvariant() == "test" && roleName.ToLowerInvariant() == "User") 
       return true; 
      // blabla ... 
      return false; 
     } 

     public override string[] GetRolesForUser(string username) 
     { 
      if (username.ToLowerInvariant() == "test") 
      { 
       return new[] { "User", "Helpdesk" }; 
      } 

      if(username.ToLowerInvariant()=="test2") 
      { 
       return new [] { "Admin" }; 
      } 

      return new string[] { }; 
     } 

     public override void AddUsersToRoles(string[] usernames, string[] roleNames) 
     { 
      throw new NotImplementedException(); 
     } 

     public override string ApplicationName 
     { 
      get 
      { 
       throw new NotImplementedException(); 
      } 
      set 
      { 
       throw new NotImplementedException(); 
      } 
     } 

     public override void CreateRole(string roleName) 
     { 
      throw new NotImplementedException(); 
     } 

     public override bool DeleteRole(string roleName, bool throwOnPopulatedRole) 
     { 
      throw new NotImplementedException(); 
     } 

     public override string[] FindUsersInRole(string roleName, string usernameToMatch) 
     { 
      throw new NotImplementedException(); 
     } 

     public override string[] GetAllRoles() 
     { 
      throw new NotImplementedException(); 
     }   

     public override string[] GetUsersInRole(string roleName) 
     { 
      throw new NotImplementedException(); 
     }   

     public override void RemoveUsersFromRoles(string[] usernames, string[] roleNames) 
     { 
      throw new NotImplementedException(); 
     } 

     public override bool RoleExists(string roleName) 
     { 
      throw new NotImplementedException(); 
     } 
    } 
} 
+0

它的工作原理,但爲什麼我必須省略'defaultProvider =「roleProvider」enabled =「true」'?如果我把它們放回去,我再次得到錯誤。 –

+0

@您不需要指定默認的成員資格提供程序:https://msdn.microsoft.com/en-US/library/6e9y4s5t.aspx –

+0

「enabled」是什麼?如果我把它放回去,我也會收到錯誤。 –

相關問題