我在单件类中有一本字典。我保存那对,每次我从创建令牌的方法访问该字典时,它会显示我存储在那里的所有凭据。
但是当我从解决方案的另一个项目中的另一个类访问时,它会将字典显示为空。谁能告诉我为什么会这样?
这是管理字典的类:
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);
}
答案 0 :(得分:0)
我已经解决了我的问题,但我会在这里让我的解决方案对某些人有用。
问题在于,如果你正在运行两个不同的项目,那将意味着两个不同的过程,因此,我想做的事情是非常不可能的。我使用Redis来做这件事并且效果很好。
这是Redis使用的一个例子:
(a+b*c)/(a-b+d-c)+a*b*c*d