Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 为什么未调用重写的ClaimSideEntityFactory.CreateAsync()方法?_Asp.net_Asp.net Identity - Fatal编程技术网

Asp.net 为什么未调用重写的ClaimSideEntityFactory.CreateAsync()方法?

Asp.net 为什么未调用重写的ClaimSideEntityFactory.CreateAsync()方法?,asp.net,asp.net-identity,Asp.net,Asp.net Identity,我创建了一个继承自ClaimsIdentity的MyClaimsIdentity类。当我运行我的应用程序时,CreateAsync方法从未被调用,我也从未看到我添加的自定义声明 没有编译错误,如果我添加默认构造函数,我可以看到这个类是构造的,但是在CreateAsync方法中没有遇到断点 public class MyClaimsFactory : ClaimsIdentityFactory<User, string> { public override async Task

我创建了一个继承自
ClaimsIdentity
MyClaimsIdentity
类。当我运行我的应用程序时,
CreateAsync
方法从未被调用,我也从未看到我添加的自定义声明

没有编译错误,如果我添加默认构造函数,我可以看到这个类是构造的,但是在
CreateAsync
方法中没有遇到断点

public class MyClaimsFactory : ClaimsIdentityFactory<User, string>
{
    public override async Task<ClaimsIdentity> CreateAsync(UserManager<User, string> manager, User user, string authenticationType)
    {
        var identity = await base.CreateAsync(manager, user, authenticationType);
        if (!String.IsNullOrWhiteSpace(user.FirstName))
        {
            identity.AddClaim(new Claim("given_name", user.FirstName));
        }

        return identity;
    }
公共类MyClaimsFactory:ClaimSideEntityFactory
{
公共重写异步任务CreateAsync(UserManager管理器、用户用户、字符串身份验证类型)
{
var identity=await base.CreateAsync(管理器、用户、authenticationType);
如果(!String.IsNullOrWhiteSpace(user.FirstName))
{
identity.AddClaim(新声明(“给定名称”,user.FirstName));
}
返回身份;
}

将此设置为答案,谢谢


您是否偶然使用IdentityServer?如果是这样,这可能会帮助您…-Jeremy 8月3日16:13

您是否偶然使用IdentityServer?如果是这样,这可能会帮助您…是的,我正在使用IdentityServer V3。您提供的链接正是我遇到的问题。谢谢。通常,如果您将另一个用户的工作作为答案,您应该做出回答wer社区维基。抱歉,当答案是评论时,我不确定该怎么办。我下次会这么做。