smileruner 2022-08-23 16:59
浏览 6
已结题

MVC RoleProvider不能通过构造函数注入么?

我在实现一个RoleProvider来为身份验证提供role功能。

这是我的RoleProvider

public class MyProvider : System.Web.Security.RoleProvider
    {
        
        private IUserAccountManage userAccountManage;

        public MyProvider (IUserAccountManage managePara)
        {
            userAccountManage = managePara
        }

        public override string[] GetRolesForUser(string username)
        {
            return userAccountManage.GetUserSiteRoles(username);
        }

        public override bool IsUserInRole(string username, string roleName)
        {
            return userAccountManage.IsUserInSiteRole(username, roleName);
        }

        #region 未实现方法
        public override string ApplicationName { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }

        public override void AddUsersToRoles(string[] usernames, string[] roleNames)
        {
            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();
        }
        #endregion


    }

这是我的NinjectDependercyResolver

public class NinjectDependercyResolver : IDependencyResolver
    {
        private IKernel kernel;

        public NinjectDependercyResolver(IKernel kernelParam)
        {
            kernel = kernelParam;
            AddBindings();
        }

        public object GetService(Type serviceType)
        {
            return kernel.TryGet(serviceType);
        }

        public IEnumerable<object> GetServices(Type serviceType)
        {
            return kernel.GetAll(serviceType);
        }

        private void AddBindings()
        {
            kernel.Bind<IAuthentication>().To<AuthenticationSrv>();
            kernel.Bind<IUserAccountManage>().To<UserManageSrv>();
            kernel.Bind<ILogRepository>().To<LogRepository>();
           
        }
    }

但是程序执行后提示 没有空参数的构造函数。

我在MVC Controller里面。也是写一个构造函数来传入接口,不知道为什么在这没有成功。

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 8月31日
    • 创建了问题 8月23日

    悬赏问题

    • ¥100 set_link_state
    • ¥15 虚幻5 UE美术毛发渲染
    • ¥15 CVRP 图论 物流运输优化
    • ¥15 Tableau online 嵌入ppt失败
    • ¥100 支付宝网页转账系统不识别账号
    • ¥15 基于单片机的靶位控制系统
    • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
    • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
    • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
    • ¥15 手机接入宽带网线,如何释放宽带全部速度