不能 return AspNetRoles 中的角色
can't return roles in AspNetRoles
我需要 return 标识表中的所有角色才能创建下拉列表。
public class ApplicationRoleManager : RoleManager<IdentityRole>
{
public ApplicationRoleManager(RoleStore<IdentityRole> store)
: base(store)
{
}
public static ApplicationRoleManager Create(IOwinContext context)
{
var Store = new RoleStore<IdentityRole>(context.Get<ApplicationDbContext>());
// Configure validation logic for usernames
return new ApplicationRoleManager(Store);
}
}
我该怎么做?
编辑
/******************************************** ****************************************************** *********/
通过设置 ApplicationRoleManager
获取所有角色的过程如下(根据 Microsoft 提供的身份示例发现 here)。
将下面的代码添加到您的 IdentityConfig.cs
public class ApplicationRoleManager : RoleManager<IdentityRole>
{
public ApplicationRoleManager(IRoleStore<IdentityRole, string> roleStore)
: base(roleStore)
{
}
public static ApplicationRoleManager Create(IdentityFactoryOptions<ApplicationRoleManager> options, IOwinContext context)
{
return new ApplicationRoleManager(new RoleStore<IdentityRole>(context.Get<ApplicationDbContext>()));
}
}
然后在 Startup.Auth.cs:
中初始化 RoleManager 的每个 Owin 上下文的单个实例
app.CreatePerOwinContext<ApplicationRoleManager>(ApplicationRoleManager.Create);
在您想要获取所有角色的控制器中,执行以下操作:
private ApplicationRoleManager _roleManager;
public ApplicationRoleManager RoleManager
{
get
{
return _roleManager ?? HttpContext.GetOwinContext().Get<ApplicationRoleManager>();
}
private set
{
_roleManager = value;
}
}
之后,您可以在任何操作方法中简单地使用 RoleManager.Roles
来获取所有角色。
此答案包含您需要的所有步骤,但如果您对过程仍不清楚,请参阅上面的 link 到 nuget 包。
我需要 return 标识表中的所有角色才能创建下拉列表。
public class ApplicationRoleManager : RoleManager<IdentityRole>
{
public ApplicationRoleManager(RoleStore<IdentityRole> store)
: base(store)
{
}
public static ApplicationRoleManager Create(IOwinContext context)
{
var Store = new RoleStore<IdentityRole>(context.Get<ApplicationDbContext>());
// Configure validation logic for usernames
return new ApplicationRoleManager(Store);
}
}
我该怎么做?
编辑
/******************************************** ****************************************************** *********/
通过设置 ApplicationRoleManager
获取所有角色的过程如下(根据 Microsoft 提供的身份示例发现 here)。
将下面的代码添加到您的 IdentityConfig.cs
public class ApplicationRoleManager : RoleManager<IdentityRole>
{
public ApplicationRoleManager(IRoleStore<IdentityRole, string> roleStore)
: base(roleStore)
{
}
public static ApplicationRoleManager Create(IdentityFactoryOptions<ApplicationRoleManager> options, IOwinContext context)
{
return new ApplicationRoleManager(new RoleStore<IdentityRole>(context.Get<ApplicationDbContext>()));
}
}
然后在 Startup.Auth.cs:
中初始化 RoleManager 的每个 Owin 上下文的单个实例app.CreatePerOwinContext<ApplicationRoleManager>(ApplicationRoleManager.Create);
在您想要获取所有角色的控制器中,执行以下操作:
private ApplicationRoleManager _roleManager;
public ApplicationRoleManager RoleManager
{
get
{
return _roleManager ?? HttpContext.GetOwinContext().Get<ApplicationRoleManager>();
}
private set
{
_roleManager = value;
}
}
之后,您可以在任何操作方法中简单地使用 RoleManager.Roles
来获取所有角色。
此答案包含您需要的所有步骤,但如果您对过程仍不清楚,请参阅上面的 link 到 nuget 包。