您可以創建一個文件夾,名爲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();
}
}
}
它的工作原理,但爲什麼我必須省略'defaultProvider =「roleProvider」enabled =「true」'?如果我把它們放回去,我再次得到錯誤。 –
@您不需要指定默認的成員資格提供程序:https://msdn.microsoft.com/en-US/library/6e9y4s5t.aspx –
「enabled」是什麼?如果我把它放回去,我也會收到錯誤。 –