2009-12-05 2 views
2

저는 아직 asp.net을 처음 사용하고 있습니다. 알아낼 수없는 문제가 있습니다. VB와 .net 회원 API를 사용하고 있습니다.SQLDataSource에 UserId 가져 오기

제 질문은 현재 사용자의 사용자 ID를 어떻게 DetailsView INSERT에 가져 오나요?

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

답변

5

당신의 SqlDataSource 당신이 MembershipUser 클래스의 ProviderUserKey 속성을 사용하여 회원 테이블에서 UserID를 검색 할 수 있습니다. 그런 다음이 값을 프로그래밍 방식으로 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

. 많이 sooooooo 고마워! 나는 그 해결책에 정말로 가까웠다. 단지 그것을 얻을 수 없었다. 고마워요 Phaedrus, 락! 우 ~ 후! !!!!! – Cronner

+0

@Cronner : 이것을 허용 된 대답으로 표시하는 것을 잊지 마십시오. –

0

User.Identity.Name은 고유 한 사용자 이름을 갖습니다. id는 aspnet_Users 테이블에서 찾을 수 있습니다. 의 OnInserting 이벤트에서

0

그냥 한 줄에 다음과 같이 그것을 : (VB로 변환 후) 완벽하게 작동

protected void Sql_OnInserting(object sender, SqlDataSourceCommandEventArgs e) 
{ 
    e.Command.Parameters["@UserId"].Value = Membership.GetUser(HttpContext.Current.User.Identity.Name).ProviderUserKey; 
}