我使用带有OWIN和Identity框架的web api 2.2模板。我故意将我的DeafultConnection设置为一个错误的IP地址,但是当我单步执行并获得持有者令牌并创建声明时,我没有任何错误。
我可以杀死w3wp.exe,再次启动它,我的令牌仍然有效。那它在哪里坚持下去?
我在 GrantResourceOwnerCredentials()方法中手动验证测试用户
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext() : base("DefaultConnection", throwIfV1Schema: false)
{
}
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
}
答案 0 :(得分:2)
我可以杀死w3wp.exe,再次启动它,我的令牌仍然有效。那它在哪里坚持下去?
OAuth令牌根本不存在,在默认的Owin OAuth2实现中,它们在设计上是无状态的。每个令牌包含为服务器加密的用户发出的声明,以便只有它可以解密并验证它。
如果您在没有访问数据库的情况下验证您的用户(我认为这是您在GrantResourceOwnerCredential
方法中手动 )时的意思,那么您当然DbContext
得到实例化。