2
我有一個使用OAuth/Owin處理身份驗證的Web API項目。Owin OAuth上下文:前端登錄發送Json
當我通過form-urlencoded發佈時,一切正常。但前端團隊將發佈應用程序/ json,並且我無法更改我的方法來接收此Json。
當我想要接收Json時,我通常會使用[FromBody],但這次它不工作。
我的代碼:
public override async Task ValidateClientAuthentication([FromBody]OAuthValidateClientAuthenticationContext context)
{
context.Validated();
}
public override async Task GrantResourceOwnerCredentials([FromBody]OAuthGrantResourceOwnerCredentialsContext context)
{
try
{
....
}
catch (Exception e)
{
context.SetError("invalid_grant", "User not found");
}
}
}
我的OAuth配置:
public static void ConfigureOAuth(IAppBuilder app, IContainer container)
{
OAuthAuthorizationServerOptions OAuthServerOptions = new OAuthAuthorizationServerOptions()
{
AllowInsecureHttp = true, // HTTPS == false
TokenEndpointPath = new PathString("/security/login"),
AccessTokenExpireTimeSpan = TimeSpan.FromHours(2),
Provider = container.Resolve<IOAuthAuthorizationServerProvider>()
};
app.UseOAuthAuthorizationServer(OAuthServerOptions);
app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());
}
的Json實施例:
{grant_type: 「密碼」,用戶名:「爲myuser」密碼: 「爲mypass」}
你可以閱讀你的json表單請求。 dynamic obj = await Request.Content.ReadAsAsync(); –
Eins