如何将其他参数传递给OWIN登录?

Sha*_*ica 5 c# asp.net-web-api owin

我有一个ASP.NET Web API的网站,这是做OWIN认证,通过用户名和密码,神奇地出现在我的GrantResourceOwnerCredentials方法,内部UserNamePassword的性能OAuthGrantResourceOwnerCredentialsContext参数.不知道这是如何工作的,但确实如此.

无论如何,现在我想将另一个参数传递给login方法,我想用同样的GrantResourceOwnerCredentials方法访问它.但是因为我不知道这个魔法是如何工作的,它从登录请求获取UserNamePassword参数并将它们复制到OAuthGrantResourceOwnerCredentialsContext参数,我现在不知道如何访问我的新参数.

我该怎么做?

Mis*_*siu 5

尝试:

//read all parameters
IFormCollection parameters = await context.Request.ReadFormAsync();

if (parameters == null)
{
    context.SetError("invalid_grant", "Invalid request");
    return;
}
//get desired parameter
var deviceId = parameters.Get("device_id");
//check if it was send
if (deviceId == null)
{
    context.SetError("invalid_grant", "parameter 'device_id' is required");
    return;
}
Run Code Online (Sandbox Code Playgroud)

基于:https : //stackoverflow.com/a/21244952/965722