单身人士字典不是单身人士

时间:2018-04-19 15:22:57

标签: c# .net dictionary singleton access-token

我在单件类中有一本字典。我保存那对,每次我从创建令牌的方法访问该字典时,它会显示我存储在那里的所有凭据。

但是当我从解决方案的另一个项目中的另一个类访问时,它会将字典显示为空。谁能告诉我为什么会这样?

这是管理字典的类:

stopButton

这是在字典中插入键值对的方法:

public class UserAccessToken
{
    public Dictionary<string, string> UserDictionary { get; set; }

    private static UserAccessToken _instance;

    private UserAccessToken() { }

    public static UserAccessToken Instance
    {
        get
        {
            if (_instance == null)
                _instance = new UserAccessToken
                {
                    UserDictionary = new Dictionary<string, string>()
                };
            return _instance;
        }
    }
}

这是我访问字典的方法,从这里我可以看到它是空的:

public override Task TokenEndpointResponse(OAuthTokenEndpointResponseContext context)
    {
        var accessToken = context.AccessToken;

        if (context.Properties.Dictionary.ContainsKey("userName"))
        {
            var username = context.Properties.Dictionary["userName"];
            // If I access here multiple times the singleton works
            UserAccessToken.Instance.UserDictionary[username] = accessToken;
        }
        return Task.FromResult<object>(null);
    }

1 个答案:

答案 0 :(得分:0)

我已经解决了我的问题,但我会在这里让我的解决方案对某些人有用。

问题在于,如果你正在运行两个不同的项目,那将意味着两个不同的过程,因此,我想做的事情是非常不可能的。我使用Redis来做这件事并且效果很好。

这是Redis使用的一个例子:

(a+b*c)/(a-b+d-c)+a*b*c*d