asp.net 멤버십의 익명 사용자를 위해 aspnet_users.userid를 얻는 방법은 무엇입니까?
-
06-07-2019 - |
문제
ASPNET 멤버십을 얻으려고 노력하고 있습니다 UserId
익명 사용자의 필드.
web.config에서 익명 식별을 활성화했습니다.
<anonymousIdentification enabled="true" />
나는 또한 프로필을 만들었습니다.
<profile>
<providers>
<clear />
<add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="ApplicationServices"
applicationName="/" />
</providers>
<properties>
<add name="Email" type="System.String" allowAnonymous="true"/>
<add name="SomethingElse" type="System.Int32" allowAnonymous="true"/>
</properties>
</profile>
나는 내 데이터를 본다 aspnetdb\aspnet_Users
프로필 정보 세트가있는 익명 사용자를위한 테이블.
Userid PropertyNames PropertyValuesString
36139818-4245-45dd-99cb-2a721d43f9c5 Email:S:0:17: me@example.com
'userID'값을 얻는 방법을 찾아야합니다.
사용할 수 없습니다.
Membership.Provider.GetUser(Request.AnonymousID, false);
request.anonymousID는 다른 지침이며 36139818-4245-45DD-99CB-2A721D43F9C5와 같지 않습니다.
이 userID를 얻는 방법이 있습니까? 익명 사용자를위한 불완전한 활동과 연관시키고 싶습니다. 기본 키 사용 aspnet_Users
내 자신의지도를 만들어야하는 것이 바람직합니다 (프로필에 할 수 있고 저장할 수 있음).
이것은 기본적으로 a입니다 이 질문의 속임수 그러나 질문은 실제로 대답하지 않았습니다.
해결책
익명 사용자를 위해 userID를 얻을 수 있습니다.
문자열 userId = request.anonymousId
다른 팁
알았어 그래서 MemberShip.GetUser()
유형의 객체를 반환합니다 MembershipUser
.
더 많은 테이블에 더 많이 탐구합니다 aspnetdb
데이터베이스 행이 생성 된 것 같습니다. aspnet_Users
모든 사용자 (익명 인 경우) - 사용자가 실제로 인증/등록하지 않는 한 ASPNET_Membership에서 행이 생성되지 않습니다.
그러나 익명의 사용자 프로필 (aspnet_users 테이블)은 UserName
.
나는 여전히 액세스 방법을 찾지 못했습니다 UserId
익명 사용자의 속성 - 그러나 실제로 사용자 이름이 어쨌든 더 유용한 키라는 것을 깨달았습니다.
그만큼 UserId
필드가 있습니다 aspnet_Users
또한 독특한 userID 필드가 필요하다면 '매뉴얼'SQL 조회를 통해 얻을 수 있습니다.