Ответ 1
Я думаю, что вы ищете ProviderUserKey - Получает идентификатор пользователя из источника данных членства для пользователя.
object id = Membership.GetUser().ProviderUserKey
Как я могу получить зарегистрированного пользователя UserId? Я использую стандартную систему, созданную AccountModel. Я могу получить имя пользователя, используя:
User.Identity.Name
но я не вижу поля UserId. Я хочу использовать UserId в качестве внешнего ключа для другой таблицы.
Я думаю, что вы ищете ProviderUserKey - Получает идентификатор пользователя из источника данных членства для пользователя.
object id = Membership.GetUser().ProviderUserKey
Попробуйте следующее:
using Microsoft.AspNet.Identity;
User.Identity.GetUserId();
То, как это делается в частичных представлениях для текущих шаблонов MVC (MVC5/EF6/VS2013).
Исправьте меня, если я ошибаюсь, потому что я видел, что Aviatrix много отвечает, но что происходит, если в базе данных одно и то же имя имеет одно и то же имя?
Лучший способ сделать это - использовать класс WebSecurty
var memberId = WebSecurity.GetUserId(User.Identity.Name);
и не забудьте добавить [InitializeSimpleMembership]
поверх вашего контроллера:)
Они уже очень хороший ответ, но я понял из вашего вопроса, что вы хотите получать данные из базы данных, используя 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.