2

Я использую VisualWebDeveloperExpress2008 с Access как поставщик членства.Использовать в настоящее время зарегистрированный пользователь в запросе

У меня есть случаи, когда я хочу, чтобы пользователи редактировали свои собственные данные. Это будет включать запрос, в котором UserId должен соответствовать идентификатору пользователя пользователя, который использует сайт.

Я ожидаю использовать WHERE UserId =?, Но я не узнал, куда направлять «?».

IDE дает несколько вариантов, но я не уверен, что выбрать. Это, хотя выглядит перспективным, не работает:

<SelectParameters> 
    <asp:ProfileParameter Name="UserID" PropertyName="UserId" Type="Int32" /> 
</SelectParameters> 

Что лучше всего использовать для выбора параметра?

ответ

1

Попробуйте использовать

<SelectParameters> 
    <asp:SessionParameter Name="UserName" SessionField="CurrentUser" Type="String" /> 
</SelectParameters> 

На Page_Load вставьте следующий ...

Session["CurrentUser"] = User.Identity.Name; 

Это должно работать для вас.

+1

лучше поместить это в обработчик события начала сеанса – SillyMonkey

+0

@SillyMonkey, очень хорошая точка. +1 – jinsungy

+0

Это работает для меня. Теперь мне нужно изучить, как поместить это в «обработчик события запуска сеанса». – Degan

1

User.Identity.Name должно предоставить вам имя пользователя для входа пользователя.

Теперь, чтобы получить UserID, вам нужно будет проверить его в базе данных, используя имя пользователя. Или вы можете сделать так, чтобы оператор select вместо этого использовал имя пользователя.

+0

OK, если у меня есть UserName, это было бы лучшим способом получить непосредственно UserID, так как я могу присоединиться к нему ... Я предполагаю, что вы имеете в виду: « Это приводит к ошибке: DataBinding:« ProfileCommon »не содержит свойства с именем« Пользователь ». Может быть, вы имеете в виду что-то еще? – Degan

 Смежные вопросы

  • Нет связанных вопросов^_^