[ASP.NET] 익명사용자를 위한 Profile 구성
2012. 3. 14. 08:43ㆍWEB
Profile 구축 및 사용
ASP.NET Web Site Project
ASP.NET Web Site Project를 이용하면 Web.config에 구성하는 것만으로 간단히 Profile를 사용하실 수 있습니다.
- Web.Config에 Profile 구성합니다.
<profile> <providers> <clear/> <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/"/> </providers> <properties> <!-- allowAnonymous="true" 설정을 통해 익명사용자도 Profile를 이용가능--> <add name="FullName" allowAnonymous="true" /> </properties> </profile>
- Web.Config에 AnonymousIdentification의 enabled값을 true로 설정하여 익명사용자로 aspnet_Users가 생성되도록 할 수 있습니다.
<configuration> <system.web> <anonymousIdentification enabled="true" /> </system.web> </configuration>
- C#페이지에서 그냥 사용하기 (Anonymous 상태일 때는 Profile에 값을 할당하면 즉시 Anonymous User가 생성됨)
Profile.FullName = "최수경";
ASP.NET Web Application Project
ASP.NET Web Application Project, ASP.NET MVC Project에서는 Web Site Project와 같이 Profile Class를 바로 사용할 수 없으므로 다음과 같이 사용합니다.
- HttpContext.Profile를 통해 사용
HttpContext.Profile["FullName"] = "최수경";
ProfileBase를 통한 Profile Class 직접 구현
ASP.NET에서는 ProfileBase Class의 직접 구현을 통해 Profile의 설정 및 접근이 가능하도록 지원합니다.
- Web.Config에 Profile를 구성합니다. Properties 속성은 여기에서 지정하셔도 되나 이 예제에서는 Profile 구현 Class에서 정의하도록 합시다.
<profile> <providers> <clear/> <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/"/> </providers> </profile>
- Web.Config에 Anonymousidentification의 enabled값을 true로 설정하여 익명사용자로 aspnet_Users가 생성되도록 합니다.
<configuration> <system.web> <anonymousIdentification enabled="true" /> </system.web> </configuration>
- ProfileBase를 이용하여 Profile에 접근하는 Profile Class를 구축합니다.
public class Profile : ProfileBase { /// <summary> /// 현재 유효한 Profile /// </summary> public static Profile Current { get { return new Profile(); } } /// <summary> /// 현재 유효한 Profile이 생성됩니다. /// </summary> public Profile() { if (HttpContext.Current.User.Identity.IsAuthenticated == false) { if (AnonymousIdentificationModule.Enabled) Initialize(HttpContext.Current.Request.AnonymousID, false); } else Initialize(HttpContext.Current.User.Identity.Name, true); } /// <summary> /// 지정한 매개변수에 해당하는 Profile이 생성됩니다. /// </summary> /// <param name="userName"></param> /// <param name="isAnonymous"></param> public Profile(string userName, bool isAnonymous) { Initialize(userName, isAnonymous); } // SettingsAllowAnonymous Attribute설정을 통해 Anonymous User가 사용할 수 있는 Profile인지 명시할 수 있습니다. [SettingsAllowAnonymous(true)] public string FullName { get { return base["FullName"] as string; } set { base["FullName"] = value; Save(); } } }
- Web.Config에서 <profile>의 inherit 속성의 값으로 Profile Class를 지정해줍니다.
<profile inherit="TestProject.Profile"> <providers> <clear/> ...
- C#페이지에서 사용하기
Profile.FullName = "최수경";
'WEB' 카테고리의 다른 글
[ASP.NET] 사용자 환경정보 쉽게 얻기 (0) | 2013.03.01 |
---|---|
[ASP.NET] Global.asax Events (0) | 2012.04.02 |
[IIS7] web.config에서 HttpModules, HttpHandlers 사용 시 오류 처리 (1) | 2011.09.15 |
[Javascript] Javascript 실행 순서 (2) | 2011.08.29 |
[ASP.NET] 명시적인 캐스팅으로 성능향상 (0) | 2010.05.10 |