C# Web API授权访问\u令牌验证

C# Web API授权访问\u令牌验证,c#,asp.net-mvc,api,access-token,C#,Asp.net Mvc,Api,Access Token,现在我正在使用OAUTH2.0进行授权。 我想做我自己的授权服务器(WebAPI)。 我有一个虚拟的MVC项目来测试这个。 我使用“SimpleAuthorizationServerProvider”成功地在服务器(WEB API)中创建了一些访问令牌。 我必须调用一些API调用,但应该得到授权。 所以我可以用我的令牌发送这个电话 https://localhost/Profile?access_token=... 或者可以通过标头发送访问令牌。 从我这方面来说,这一切都是可以的。 但我需要在

现在我正在使用OAUTH2.0进行授权。 我想做我自己的授权服务器(WebAPI)。 我有一个虚拟的MVC项目来测试这个。 我使用“SimpleAuthorizationServerProvider”成功地在服务器(WEB API)中创建了一些访问令牌。 我必须调用一些API调用,但应该得到授权。 所以我可以用我的令牌发送这个电话

https://localhost/Profile?access_token=...
或者可以通过标头发送访问令牌。 从我这方面来说,这一切都是可以的。 但我需要在服务器端验证这个访问令牌。 我可以从客户端(虚拟MVC项目)获得访问令牌

但无法理解它是从服务器端创建的。 我们可以在服务器端(Web API)验证访问令牌。 我读了很多书,但仍然很困惑。 请帮帮我。
谢谢

您不需要担心服务器端的访问令牌。服务器端的访问令牌由Katana中间件解析和验证。如果您需要有关如何创建/使用访问令牌的更多详细信息,然后在中搜索反序列化ticket和SerializeTicket方法,您将发现这些方法与令牌一起用于序列化/反序列化您在客户端(DummyMVC)上已访问的ClaimSidenty

无论如何,您使用的是来自嵌入式AuthorizationServer Thinktecture项目的SimpleAuthorizationServerProvider,该项目是OAuthAuthorizationServerProvider的包装。我说得对吗?我相信您想要验证凭据。在您的情况下,您可以覆盖GrantResourceOwnerCredentials

    public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
    {
        // validate user credentials (demo!)
        // user credentials should be stored securely (salted, iterated, hashed yada)
        if (context.UserName != context.Password)
        {
            context.Rejected();
            return;
        }
        context.Validated();
    }

最好的是你看看

运气好吗?我也遇到了同样的问题。Stefan,你遇到了什么问题,还不清楚你遇到了什么故障模式。谢谢。。但我已经做了很多。我需要走下一步。。在服务器端检查我的访问令牌有效性(我需要自定义该部分)。
    public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
    {
        // validate user credentials (demo!)
        // user credentials should be stored securely (salted, iterated, hashed yada)
        if (context.UserName != context.Password)
        {
            context.Rejected();
            return;
        }
        context.Validated();
    }