Вернуть пользовательское сообщение об ошибке недопустимого предоставления из GrantResourceOwnerCredentials

При сбое аутентификации в методе GrantResourceOwnerCredentials SimpleAuthorizationServerProvider он возвращается;

context.SetError("invalid_grant", "The user name or password is incorrect.");

Однако мне нужно вернуть свой собственный ответ JSON, используя класс TEntity, любая помощь будет оценена по достоинству.


person bilmuhfk    schedule 10.03.2015    source источник
comment
Ответ см. в следующем: [Связанное сообщение с ответом] [1] [1]: stackoverflow.com/questions/25032513/   -  person Piotr Stulinski    schedule 26.09.2015


Ответы (1)


Будет ли это делать трюк для вас?

            context.SetError("MyCustomError", JsonConvert.SerializeObject(new removeit()
            {
                NAME = "1",
               name2 = "2",
               name3 = "3"
            }));

Возвращение

{
    "error": "MyCustomError",
    "error_description": "{\"NAME\":\"1\",\"name2\":\"2\",\"name3\":\"3\"}"
}
person erPe    schedule 18.04.2015
comment
На самом деле это объект Owin, который имеет такие свойства, как error, error_description и т. д. Однако мне нужно сериализовать свой собственный объект в результате неудачной аутентификации и передать его клиентам в качестве ответа на их запрос к службе. Спасибо, но, к сожалению, в моем случае это не поможет. - person bilmuhfk; 21.04.2015
comment
И если вы сделаете что-то вроде: context.Response.StatusCode = (int) HttpStatusCode.Unauthorized; context.Response.ReasonPhrase = моя собственная причина; Кроме того, вы можете сериализовать свой объект и вернуть его как тело с помощью context.Response.Body = ‹serializedObjectAsStream›? - person erPe; 21.04.2015