Получение UserId в SQLDataSource - PullRequest
       10

Получение UserId в SQLDataSource

2 голосов
/ 06 декабря 2009

Я все еще новичок в asp.net, и у меня возникла проблема, которую я просто не могу понять. Я использую vb и .net членство API.

У меня вопрос, как мне получить ID пользователя текущего пользователя в INSERT DetailsView?

<InsertParameters>
<asp:Parameter Name="UserID"/>
</InsertParameters>

Ответы [ 3 ]

5 голосов
/ 06 декабря 2009

В событии OnInserting вашего SqlDataSource вы можете извлечь UserID из таблицы Membership, используя свойство ProviderUserKey класса MembershipUser. Затем вы можете программно присвоить это значение параметру вставки UserID.

protected void SqlDataSource_Inserting(object sender, SqlDataSourceCommandEventArgs e) 
{      
    MembershipUser currentUser = Membership.GetUser();      
    Guid id = (Guid)currentUser.ProviderUserKey;
    e.Command.Parameters["@UserID"].Value = id; 
}
0 голосов
/ 31 декабря 2012

Просто сделайте это в одну строку:

protected void Sql_OnInserting(object sender, SqlDataSourceCommandEventArgs e)
{
    e.Command.Parameters["@UserId"].Value = Membership.GetUser(HttpContext.Current.User.Identity.Name).ProviderUserKey;
}
0 голосов
/ 06 декабря 2009

User.Identity.Name даст вам уникальное имя пользователя. Вы можете найти идентификатор в таблице aspnet_Users.

...