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

Как я могу получить зарегистрированного пользователя UserId? Я использую стандартную систему, созданную AccountModel. Я могу получить имя пользователя, используя:

User.Identity.Name

но я не вижу поля UserId. Я хочу использовать UserId в качестве внешнего ключа для другой таблицы.

Ответ 1

Я думаю, что вы ищете ProviderUserKey - Получает идентификатор пользователя из источника данных членства для пользователя.

object id = Membership.GetUser().ProviderUserKey

Membership.GetUser() - получает информацию из источника данных и обновляет отметку даты/времени последней активности для текущего пользователя, входящего в систему.

Ответ 2

Попробуйте следующее:

using Microsoft.AspNet.Identity;
User.Identity.GetUserId();

То, как это делается в частичных представлениях для текущих шаблонов MVC (MVC5/EF6/VS2013).

Исправьте меня, если я ошибаюсь, потому что я видел, что Aviatrix много отвечает, но что происходит, если в базе данных одно и то же имя имеет одно и то же имя?

Ответ 3

Лучший способ сделать это - использовать класс WebSecurty

var memberId = WebSecurity.GetUserId(User.Identity.Name);

и не забудьте добавить [InitializeSimpleMembership] поверх вашего контроллера:)

Ответ 4

Они уже очень хороший ответ, но я понял из вашего вопроса, что вы хотите получать данные из базы данных, используя id.so, вот что вы можете сделать.

public List<ForeignkeyTable> RV()
{
 var email = User.Identity.Name;

Usertable m = db.Uusertables.Where(x => x.user_Email == email).SingleOrDefault();

 var id = m.user_Id;

var p = db.ForeignkeyTable.Where(x => x.user_fk_id == id).ToList();


return p;

}

Таким образом, вы можете вернуть все данные из базы данных этого идентификатора в Foreignkey.