C# 在DotNetOpenAuth中实现自定义授权类型

C# 在DotNetOpenAuth中实现自定义授权类型,c#,oauth-2.0,dotnetopenauth,C#,Oauth 2.0,Dotnetopenauth,使用,我们在授权服务器上成功地实现了几个标准OAuth 2.0授权类型 我们现在希望实现一个自定义的授权类型,最好不修改DotNetOpenAuth源代码本身 我可以像这样手动处理它: public async Task<ActionResult> Token() { if (Request["grant_type"] == "my_custom_grant") { if(InvalidClientCredentials) re

使用,我们在授权服务器上成功地实现了几个标准OAuth 2.0授权类型

我们现在希望实现一个自定义的
授权类型
,最好不修改DotNetOpenAuth源代码本身

我可以像这样手动处理它:

public async Task<ActionResult> Token()
{
    if (Request["grant_type"] == "my_custom_grant")
    {
        if(InvalidClientCredentials)
            return ErrorJson();

        var user = FindUserWithSpecialCode(Request["special_code"]);

        if (client.IsAlreadyAuthorizedForUser(user))
            return Json(new { access_token = "", token_type = "bearer", expires_in = 1800 });
        else
            return ErrorJson();
    }

    HttpResponseMessage response = await AuthorizationServer.HandleTokenRequestAsync(Request, Response.ClientDisconnectedToken);
    return response.AsActionResultMvc5();
}
公共异步任务令牌()
{
如果(请求[“授权类型”]=“我的自定义授权”)
{
如果(无效客户端凭据)
返回ErrorJson();
var user=FindUserWithSpecialCode(请求[“特殊代码]);
if(client.IsAlreadyAuthorizedForUser(user))
返回Json(新的{access_token=”“,token_type=“bearer”,expires_in=1800});
其他的
返回ErrorJson();
}
HttpResponseMessage response=await AuthorizationServer.HandleTokenRequestAsync(请求、响应、ClientDisconnectedToken);
返回响应。AsActionResultMvc5();
}
但它有点黑,我担心安全问题


我见过其他OAuth库支持自定义授权类型,但DotNetOpenAuth是否支持自定义授权类型?

您是如何解决这一问题的?我有同样的问题,但找不到解决办法solution@user813948不幸的是,我们没有。最后,我们使用了资源所有者凭证授权,并添加了一个修饰符