2016-05-15 5 views
0

в моем WebAPI контроллер после функции Поручаю идентификатор пользователя к моему публикуемую объекта через User.identity.GetUserId()ModelState.isValid но всегда возвращается ошибка проверки, которая требуетсяModelState Ошибка проверки, когда значение Достаньте из User.Identity.GetUserId()

идентификатор пользователя

, а значение присваивается требуемому свойству. Поэтому я удалил требуемый атрибут из свойства userId. Он работает, но мне нужно знать, почему ModelState не знает, что идентификатор пользователя уже предоставлен User.Identity.GetUserId().

+0

может быть 'User' равна нулю? – demo

+0

Нет. Это не пустое значение, поскольку оно сохраняется в базе данных. проблема в том, что я не могу использовать атрибут [Обязательный] для этого свойства. Но удаление этого атрибута не гарантирует, прошел ли userId или нет. – Khalil

ответ

1

Если вы используете Web API 2, а User.identity.GetUserId() использование

RequestContext.Principal.Identity.GetUserId() 

или

using Microsoft.AspNet.Identity; 
using Microsoft.AspNet.Identity.Owin; 

Request.GetOwinContext().GetUserManager<ApplicationUserManager>() 
+0

спасибо ... это сработало. – Khalil