首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AutoFac和CustomPrincipal

AutoFac和CustomPrincipal
EN

Stack Overflow用户
提问于 2015-12-21 11:11:51
回答 1查看 483关注 0票数 2

我有一个这样实现IPrincipal的自定义类:

代码语言:javascript
复制
public class UserPrincipal : IPrincipal
{
    private readonly User _user;

    public UserPrincipal(IIdentity identity, User user)
    {
        _user = user;
        Identity = identity;
    }

    public bool IsInRole(string role)
    {
        return _user.Permissions.Any(x => x.Name == role);
    }

    public IIdentity Identity { get; }
}

这是向AutoFac注册它的正确方式吗?

代码语言:javascript
复制
builder.RegisterType<IPrincipal>().As<UserPrincipal>();

我收到一个错误:

类型‘'MyNamespace.Identity.UserPrincipal'.’的异常发生在Autofac.dll中,但在用户代码附加信息中没有处理:类型'System.Security.Principal.IPrincipal‘不能分配给服务Autofac.dll

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-21 11:15:17

你必须改变你的注册码。注册具体类型(RegisterType<T>)并使用接口类型进行映射(As<T>)。

代码语言:javascript
复制
builder.RegisterType<UserPrincipal>().As<IPrincipal>();
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34394314

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档