0

этот код для создания роли в базе данных.не может преобразовать из 'группы методов' в 'Func <ApplicationRoleManager> в asp mvc identity

IdentityConfig:

public class ApplicationRoleManager : RoleManager<IdentityRole> 
{ 
    public ApplicationRoleManager(RoleStore<IdentityRole> roleStore) 
     : base(roleStore) 
    { 
    } 

    public static ApplicationRoleManager Create(IOwinContext context) 
    { 
     var roleStore = new RoleStore<IdentityRole>(context.Get<ApplicationDbContext>()); 
     return new ApplicationRoleManager(roleStore); 
    } 
} 

но Startup.Auth показать мне ошибку:

enter image description here

Как я могу решить эту ошибку?

Редактировать

public void Configuration(IAppBuilder app) 
{ 
    ConfigureAuth(app); 
} 
+0

Я вижу, что ваша ошибка исходит из конфигурации auth, пожалуйста, покажите все соответствующие коды на 'ConfigureAuth' внутри класса' Startup'. –

+0

вопрос об обновлении – Kianoush

ответ

1

подписи для CreatePerOwingContext<T> выглядит следующим образом:

public static IAppBuilder CreatePerOwinContext<T>(this IAppBuilder app, Func<IdentityFactoryOptions<T>, IOwinContext, T> createCallback) where T : class, IDisposable 

или как это:

public static IAppBuilder CreatePerOwinContext<T>(this IAppBuilder app, Func<T> createCallback) where T : class, IDisposable 

Т.е. вам эфир необходимо предоставить функцию, которая создаст вам объект, т. е.

app.CreatePerOwinContext<ApplicationRoleManager>(() => new ApplicationRoleManager(/*blah params*/)); 

Это будет использовать второе переопределение. Или вернитесь к значениям по умолчанию:

public static ApplicationRoleManager Create(IdentityFactoryOptions<ApplicationRoleManager> options, IOwinContext context) 
{ 
    var applicationDbContext = context.Get<ApplicationDbContext>(); 
    var roleStore = new RoleStore<IdentityRole>(applicationDbContext); 
    var manager = new ApplicationRoleManager(roleStore); 

    return manager; 
}  

 Смежные вопросы

  • Нет связанных вопросов^_^