У меня есть проект веб-API с использованием OAuth/Owin для работы с аутентификацией.Owin OAuth Контекст: вход для входа в Frontend Json
Все работает нормально, когда я отправляю через форму-urlencoded. Но команда frontend отправит приложение/json, и я не смог изменить свой метод, чтобы получить этот Json.
Обычно я использую [FromBody], когда хочу получить Json, но на этот раз это не сработало.
Мой код:
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 Config:
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 = wait Request.Content.ReadAsAsync(); –
Eins