'.NET프로그래밍/ASP.NET 3.5 SP1'에 해당되는 글 93건

  1. 2009.10.23 WebProfile - 인증 기능 적용
  2. 2009.10.23 WebStandardControl - Panel 컨트롤 / MultiViewLogin 컨트롤 / Wizard컨트롤
  3. 2009.10.21 SqlHelper 클래스와 Enterprise Library(4.1)
  4. 2009.10.21 WebDeployment (배포)
  5. 2009.10.21 WebConfiguration
  6. 2009.10.20 WebOutputCache
  7. 2009.10.20 FrmQueryString
  8. 2009.10.20 FrmCookies
  9. 2009.10.20 FrmViewState
  10. 2009.10.20 FrmCache



 ASP.NET 제공 로그인 컨트롤들
 

    Register.aspx : CreateUserWizard 컨트롤
    Login.aspx : 로그인 컨트롤
    Default.aspx :
        LoginView
            LoginStatus
            HyperLink

 

 - Web.config 파일에 가서

<!-- 인증방식 변경 -->

<roleManager enabled="true" />

<authentication mode="Forms"></authentication>

 

- 인증 기능 적용
Admin 폴더를 만들고 관리자만 들어갈 수 있도록..
나만 볼 수 있는 페이지 만들기
Page.User.Identity.Name : 유저 아이디를 담고 있음









웹페이지에  Admin폴더 추가하고 관리자만 볼 수 있는 페이지 삽입
위 그림에서 처럼 ASP.NEt 관리 도구에서 Admin폴더에 접근 가능한 사용자를 정해주면
그 폴더에 대한 web.config파일이 생긴다.



[Admin/Web.config]

<?xml version="1.0" encoding="utf-8"?>

<configuration>

  <system.web>

    <authorization>

      <!-- 현재 Admin 폴더는 '박상혁'만 허용 -->

      <!-- Administrators 그룹(역할)은 허용 -->

      <allow users="박상혁" roles="Administrators"/>

 

      <!-- 나머지는 거부 -->

      <deny users="*"/>

    </authorization>

  </system.web>

</configuration>


 
* Profile
회원가입  추가 정보 : Profile
 아이디
 암호
 ---
 이름
 주소
 나이

쉽게 추가 정보를 추가 삭제 할 수 있다
주소 정보 저장하고 싶을 때
Web.config파일에 <profile><property><add>로 주소추가

<!-- 프로필 -->

      <profile>

        <properties>

          <add name="Name"/>

          <add name="Age" type="System.Int32"/>

          <add name="Address" type="System.String"/>

        </properties>

      </profile>




[UserInfor.aspx.cs] 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

 

public partial class UserInfor : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

        if (!Page.IsPostBack)

        {

            txtName.Text = Profile.Name; // 이름 출력

        }

    }

    protected void btnAdd_Click(object sender, EventArgs e)

    {

        // 이름 저장

        Profile.Name = txtName.Text;

        Profile.Age = Convert.ToInt32(txtAge.Text);

        Profile.Address = txtAddress.Text;

    }

}

 

ASPNETDB.MDF 파일에 인증/프로필 값 저장이 아닌,
내가 만든 DB에 저장하고 싶다면?
 aspnet_regsql.exe 명령어 사용 : 

2.우리가 직접 Users 테이블 설계... 직접 기능 구현
로그인 + 프로필 : 직접 만들어서 사용하더라..



* LoginView 컨트롤
- AnonymousTemplate : 로그인 하기 전 상태. 인증 전
- LoggedInTemplate : 로그인 후 상태. 인증 후



[Default.aspx]의 <div>태그 내에 작성한 코드

<asp:LoginView ID="LoginView1" runat="server">

        <AnonymousTemplate>

            <asp:LoginStatus ID="LoginStatus1" runat="server" />

            <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="~/Register.aspx">회원가입</asp:HyperLink><br />

            손님으로 접속중입니다.

        </AnonymousTemplate>

        <LoggedInTemplate>

            <asp:LoginStatus ID="LoginStatus2" runat="server" />

            <asp:LoginName ID="LoginName1" runat="server" />

        </LoggedInTemplate>

        </asp:LoginView>

 

 

Posted by holland14
:


* 패널(Panel) 컨트롤

표식을 하기 위해서 구분자 넣기
넣는 이유는 깜빡거리면서 동일한 영역만 실행되게 함
로그인, 로그아웃 패널을 따로 처리
첫번째 패널 visible 사용해서 보였다 안보였다 함
Div 태그 생성됨




[FrmPanelLogin.aspx]의 <div>태그 내에 작성한 코드

 

 

 

<asp:Button ID="btnLogin" runat="server" Text="로그인" onclick="btnLogin_Click" />

<asp:Button ID="btnLogout" runat="server" Text="로그아웃" Visible="false"

            onclick="btnLogout_Click" />

 

<asp:Panel ID="pnlLogin" runat="server">

        손님으로 접속중입니다.

</asp:Panel>

<asp:Panel ID="pnlLogout" runat="server" Visible="false">

        ~님 반갑습니다.

</asp:Panel>

 



-------------------------------------------------------------------------------------




[FrmPanelLogin.aspx.cs]에 작성한 코드부분
 

 

protected void btnLogin_Click(object sender, EventArgs e)

{

    // 로그인 버튼 클릭시 로그아웃 패널 보이기

    btnLogin.Visible = this.pnlLogin.Visible = false;

    btnLogout.Visible = this.pnlLogout.Visible = true;

}

 

protected void btnLogout_Click(object sender, EventArgs e)

{

    // 로그아웃 버튼 클릭시 로그인 패널 보이기

    btnLogin.Visible = this.pnlLogin.Visible = true;

    btnLogout.Visible = this.pnlLogout.Visible = false;

}

 



-------------------------------------------------------------------------------------




[실행결과]






-------------------------------------------------------------------------------------




* 멀티뷰(MultiView) 컨트롤

패널을 개선 더 편하게 함
어떠한 태그도 동반하지 않음
처음에 뜨게하는 패널 선택할 때
기본값 ActiveViewIndex를 지정 (mcp 자격증 출제)
0이 가장 먼저 보임





[FrmMultiViewLogin.aspx]의 <div>태그 내에 작성한 코드

<asp:Button ID="btnLogin" runat="server" Text="로그인" onclick="btnLogin_Click" style="height: 21px" />

<hr />

<asp:MultiView ID="MultiView1" runat="server" ActiveViewIndex="0">

    <asp:View ID="View1" runat="server">

        손님으로 접속중입니다.

    </asp:View>

    <asp:View ID="View2" runat="server">

        ~님 반갑습니다.

    </asp:View>

</asp:MultiView>

 

  


-------------------------------------------------------------------------------------




[FrmMultiViewLogin.aspx.cs]에 작성한 코드부분

protected void btnLogin_Click(object sender, EventArgs e)

{

    if (btnLogin.Text == "로그인")

    {

        btnLogin.Text = "로그아웃";

        this.MultiView1.ActiveViewIndex = 1; // 로그아웃 패널

    }

    else

    {

        btnLogin.Text = "로그인";

        this.MultiView1.ActiveViewIndex = 0; // 로그인 패널

    }

}

 

 


-------------------------------------------------------------------------------------




[실행결과]






-------------------------------------------------------------------------------------





* 위저드(Wizard) 컨트롤

동일한 영역을 이전 다음 버튼 눌러서 변하게 할 수 있음
위저드 컨트롤은 여러개의 위저드 스탭을 가짐
단계를 여러개로 나눌 수 있음
프로그램 설치하는 것처럼 스텝을 여러개 주고 싶을 때





[FrmWizardRegister.aspx]의 <div>태그 내에 작성한 코드

<asp:Wizard ID="Wizard1" runat="server">

    <WizardSteps>

        <asp:WizardStep ID="WizardStep1" Title="회원가입시작" runat="server" StepType="Start">

            회원가입 페이지입니다.

        </asp:WizardStep>

        <asp:WizardStep ID="WizardStep2" runat="server" Title="아이디"

StepType="Step">

            아이디 :

        </asp:WizardStep>

        <asp:WizardStep ID="WizardStep3" runat="server" Title="암호"

StepType="Auto">

            암호 :

        </asp:WizardStep>

        <asp:WizardStep ID="WizardStep4" runat="server" Title="Step 2"

StepType="Finish">

            회원가입을 완료하시겠습니까?

        </asp:WizardStep>

        <asp:WizardStep ID="WizardStep5" runat="server" Title="Step 2"

StepType="Complete">

            처리되었습니다.

        </asp:WizardStep>

    </WizardSteps>

</asp:Wizard>

 



-------------------------------------------------------------------------------------




[실행결과]










Posted by holland14
:


<DB 입출력 자동>
1.SqlHelper
2.Enterprise Library 4.1 사용
 Connection....  DB 입출력 관련 코딩 안해도 됨




SqlHelper 클래스 - Microsoft Application Blocks for .NET  

-
http://msdn.microsoft.com/ko-kr/library/ms954827.aspx




Enterprise Library(Enterprise Library 4.1)

-
http://msdn.microsoft.com/en-us/library/dd203099.aspx

Posted by holland14
:

배포하는 첫 번째 방법


* 여기서는 예제파일로 Default.aspx라는 웹 사이트(프로젝트)를 하나 만들어서 완성시킨다.




[Default.aspx] 소스코드 및 디자인



<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <title></title>

</head>

<body>

    <form id="form1" runat="server">

    <div>

   

        웹 사이트 배포 연습<br />

        <br />

        <asp:Calendar ID="Calendar1" runat="server"

            onselectionchanged="Calendar1_SelectionChanged"></asp:Calendar>

        <br />

   

    </div>

    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>

    </form>

</body>

</html>

 









-------------------------------------------------------------------------------------




[Default.aspx.cs] 소스코드




using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

 

public partial class _Default : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

 

    }

 

    protected void Calendar1_SelectionChanged(object sender, EventArgs e)

    {

        this.Label1.Text =

            Calendar1.SelectedDate.ToShortDateString();

    }

}

 







--> "Default.aspx"파일작성 완료 후 실행하였을때 웹 페이지에서의 화면 





-------------------------------------------------------------------------------------



- 배포하기 과정


"솔루션 탐색기"에서 "웹 사이트 복사"버튼 마우스로 클릭한다.




--> 아래그림에서와 같이 "웹 복사"창에서 "연결"버튼 마우스로 클릭한다.





위의 과정을 통해 바로 로컬에서 원격으로 파일(WebDeployment)을 올린 후(=소스를 올려놓고) 원격에서 실행해보면 에러가 난다. 이를 해결하기 위해서는 (ASP.NET 2.0버전으로)웹 공유를 (가상디렉터리로)걸어줘야 에러가 나지 않는다. 그리고 참고사항으로 "네트워크 서비스(NETWORK SERVICE)"에서 쓰기 권한을 줘야 한다.





배포하는 2번째 방법

"Default.aspx"창에서 아래와 같이 실행한다.






--> 아래그림에서 체크박스 중 위에 있는 2개만 체크해도 되고, 모두 체크해제해도 상관없다.






[두번째 배포방법 실행결과]

--> 아래그림의 WebDeployment 폴더에는 C#코드가 들어가 있는 것을 확인 할 수 있다.




--> 아래그림에서 WebDeploymentUp 폴더에는 C#코드가 없는 것을 확인 할 수 있다.




--> 아래그림의 WebDeploymentUp 폴더에는 C#코드가 없고 [WebDeploymentUp - bin폴더]에 "dll파일"이 들어있는 것을 볼 수 있다. 





* WebDeployment 폴더에는 C#코드가 들어가 있지만, WebDeploymentUp 폴더에는 C#코드는 없고 bin폴더에 dll파일만 있다.(개발자가 개발한 C# 소스를 보호하기 위해서 dll파일만 배포하는 것이다.)





Posted by holland14
:


[web.config] 소스코드


</configSections> 

 

 

 

    <!-- 웹 사이트 전체에서 사용되는 상수 값 보관 -->

    <appSettings>

      <add key="SITE_NAME" value="닷넷코리아" />

      <add key="SITE_WIDTH" value="770" />

      <add key="SITE_MANAGER" value="구하라" />

    </appSettings>

 

 

 

    <!-- 데이터베이스 연결 문자열 -->

    <connectionStrings>

        <add

            name="ConnectionString"

            connectionString="server=.database=temp;uid=sa;pwd=Pa$$w0rd;"

            providerName="System.Data.SqlClient" />

    </connectionStrings>

 

 

    <system.web>





-------------------------------------------------------------------------------------



[Default.aspx] 소스코드 및 디자인



<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <title></title>

</head>

<body>

    <form id="form1" runat="server">

    <div>   

        사이트명 :

        <asp:Label ID="lblSITE_NAME" runat="server"></asp:Label>

        <br />

        Width :

        <asp:Label ID="lblSITE_WIDTH" runat="server"></asp:Label>

        <br />

        관리자 :

        <asp:Label ID="lblSITE_MANAGER" runat="server"></asp:Label>

        <br />

        <br />

        DB연결문자열 :

        <asp:Label ID="lblConnectionString" runat="server"></asp:Label>

        <br />

    </div>

    </form>

</body>

</html>

 










-------------------------------------------------------------------------------------




[Default.aspx.cs] 소스코드



using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Configuration;

using System.Web.Configuration;

 

public partial class _Default : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

        // <appSettings /> 섹션을 읽어 오고 싶다...

        lblSITE_NAME.Text =

            System.Configuration.ConfigurationManager.AppSettings[0]; // ConfigurationManager는 윈도우 애플리케이션/웹 애플리케이션 둘 다 가능하다.

        lblSITE_WIDTH.Text =

            ConfigurationManager.AppSettings["SITE_WIDTH"].ToString();

        lblSITE_MANAGER.Text =

            System.Web.Configuration.WebConfigurationManager.AppSettings[2];  // WebConfigurationManager는 웹 애플리케이션 전용이다.

 

 

        // <connectionStrings /> 섹션

        lblConnectionString.Text =

            WebConfigurationManager.ConnectionStrings[

                "ConnectionString"].ConnectionString + "&nbsp;" +

                    WebConfigurationManager.ConnectionStrings[0].ProviderName;

    }

}

 

 

 

// global.asax 파일은 적용하려면 빌드를 해야 하지만, web.config 파일은 빌드하지 않고 동적으로 적용하기 때문에 더 빠르다.

// ConfigurationManager, WebConfigurationManager 둘 다 동일한 역할을 하지만 네임스페이스가 다르다.

 

 

 


-------------------------------------------------------------------------------------





[실행결과]






'.NET프로그래밍 > ASP.NET 3.5 SP1' 카테고리의 다른 글

SqlHelper 클래스와 Enterprise Library(4.1)  (0) 2009.10.21
WebDeployment (배포)  (0) 2009.10.21
WebOutputCache  (0) 2009.10.20
FrmQueryString  (0) 2009.10.20
FrmCookies  (0) 2009.10.20
Posted by holland14
:



Output Cache :
 웹 폼 / 웹 사용자 정의 컨트롤의 상태값을 매번 요청하지 않고,
 메모리에 저장 후 동일한 요청이 들어오면 바로 처리
 

페이지 단위 적용 --> "OutputCache 지시문" 사용
<%@ OutputCache Duration="초단위" VaryByParam="None: %>

코드 기반으로 적용
        // 코드 기반으로 캐싱 기능 적용하기
        Response.Write(DateTime.Now); // 현재 날짜 출력

        // 캐싱 설정
        Response.Cache.SetCacheability(HttpCacheability.Public);

        // 캐싱 유효기간 설정
        Response.Cache.SetExpires(DateTime.Now.AddSeconds(60));

        // 매개변수 방식 지정
        Response.Cache.VaryByParams["*"] = true;   
        
       


-------------------------------------------------------------------------------------




[FrmOutputCaching.aspx] 소스코드 및 디자인

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="FrmOutputCaching.aspx.cs" Inherits="FrmOutputCaching" %>

 

<%@ OutputCache Duration="60" VaryByParam="None" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <title></title>

</head>

<body>

    <form id="form1" runat="server">

    <div>

        <asp:Label ID="lblTime" runat="server" Text=""></asp:Label>

    </div>

    </form>

</body>

</html>

 








-------------------------------------------------------------------------------------




[FrmOutputCaching.aspx.cs] 소스코드


using System;

 

public partial class FrmOutputCaching : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

        // 로드할 때마다 시간 출력 :

        //      DB연결해서 데이터를 1000건 가져온다고 가정하자.

        this.lblTime.Text = DateTime.Now.ToLongTimeString();

    }

}




-------------------------------------------------------------------------------------




[실행결과]

--> 60초(1분) 동안은 '새로고침'해도 웹 페이지의 화면이 바뀌지 않는다.
[FrmOutputCaching.aspx] 소스코드에서 "OutputCache 지시문" 사용했기 때문에...
<%@ OutputCache Duration="초단위" VaryByParam="None: %>





-------------------------------------------------------------------------------------



코드 기반으로 동일하게 캐싱 기능 적용하기 위해서 "FrmOutputCachingByCode.aspx"라는 이름으로 "웹 폼(Web Form)"을 하나 추가한 후 아래와 같이 "FrmOutputCachingByCode.aspx.cs"에서 코드를 작성한다.




[FrmOutputCachingByCode.aspx.cs] 소스코드

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

 

public partial class FrmOutputCachingByCode : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

        // 코드 기반으로 캐싱 기능 적용하기

        Response.Write(DateTime.Now); // 현재 날짜 출력

 

        // 캐싱 설정

        Response.Cache.SetCacheability(HttpCacheability.Public);

 

        // 캐싱 유효기간 설정

        Response.Cache.SetExpires(DateTime.Now.AddSeconds(60));

 

        // 매개변수 방식 지정

        Response.Cache.VaryByParams["*"] = true;               

    }

}

 




-------------------------------------------------------------------------------------




[실행결과]


* Internet Explorer 브라우저에서 실행해야 됨.(FireFox 브라우저에서는 실행 안됨.)

--> [FrmOutputCachingByCode.aspx.cs] 소스코드에서 "코드 기반으로 캐싱 기능을 적용"하여, 60초(1분) 동안은 '새로고침'해도 웹 페이지의 화면이 바뀌지 않는다.








'.NET프로그래밍 > ASP.NET 3.5 SP1' 카테고리의 다른 글

WebDeployment (배포)  (0) 2009.10.21
WebConfiguration  (0) 2009.10.21
FrmQueryString  (0) 2009.10.20
FrmCookies  (0) 2009.10.20
FrmViewState  (0) 2009.10.20
Posted by holland14
:


[FrmQueryString.aspx] 소스코드 및 디자인



<%@ Page Language="C#" AutoEventWireup="true" CodeFile="FrmQueryString.aspx.cs" Inherits="FrmQueryString" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <title></title>

</head>

<body>

    <form id="form1" runat="server">

    <div>

   

    <a href="FrmQueryStringTest.aspx?Num=5&Name=RedPlus">

    링크로 쿼리스트링 전달

    </a>

   

    </div>

    </form>

</body>

</html>

 









-------------------------------------------------------------------------------------




"링크로 쿼리스트링 전달"을 한 후 그 값을 출력해보기위해 "FrmQueryStringTest.aspx"라는 이름으로 "웹폼(Web Form)"을 하나 생성하고, "FrmQueryStringTest.aspx"의 "코드비하인드페이지"인 "FrmQueryStringTest.aspx.cs"에 아래와 같이 코드를 작성한다.



[FrmQueryStringTest.aspx.cs] 소스코드



using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

 

public partial class FrmQueryStringTest : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

        // 앞 페이지에서 넘겨온 쿼리스트링 출력

        if (!String.IsNullOrEmpty(Request.QueryString["Num"]))

        {

            Response.Write(Request.QueryString["Num"] + "<br />"); // 5

            Response.Write(Request["Name"]); // RedPlus

        }

 

    }

}

 




-------------------------------------------------------------------------------------



[실행결과]


*  "FrmQueryString.aspx"파일에서 "브라우저에서 보기"로 실행해야 함.


--> 첫 실행화면. 아래그림의 웹페이지에서 링크가 걸려있는 "링크로 쿼리스트링 전달"텍스트를 마우스로 클릭하면...





--> [FrmQueryString.aspx] 소스코드에서 [FrmQueryStringTest.aspx.cs] 소스코드로 넘겨준 "쿼리스트링"을 전달받아 아래그림과 같이 웹 페이지에 출력한다.




















'.NET프로그래밍 > ASP.NET 3.5 SP1' 카테고리의 다른 글

WebConfiguration  (0) 2009.10.21
WebOutputCache  (0) 2009.10.20
FrmCookies  (0) 2009.10.20
FrmViewState  (0) 2009.10.20
FrmCache  (0) 2009.10.20
Posted by holland14
:

[FrmCookies.aspx] 소스코드 및 디자인



<%@ Page Language="C#" AutoEventWireup="true" CodeFile="FrmCookies.aspx.cs" Inherits="FrmCookies" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <title></title>

</head>

<body>

    <form id="form1" runat="server">

    <div>

   

        <asp:Button ID="btnAddCookies" runat="server" Text="쿠키에 현재시간 저장"

            onclick="btnAddCookies_Click" />

   

    </div>

    </form>

</body>

</html>

 










-------------------------------------------------------------------------------------




[FrmCookies.aspx.cs] 소스코드



using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

 

public partial class FrmCookies : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

 

    }

 

    protected void btnAddCookies_Click(object sender, EventArgs e)

    {

        // 쿠키 저장

        Response.Cookies["NOW"].Value = DateTime.Now.ToShortTimeString();

        Response.Cookies["NOW"].Expires = DateTime.Now.AddDays(30); // 30일간 저장

       

        // 쿠키 읽어오기

        if (Request.Cookies["NOW"] != null)

        {

            string now = Request.Cookies["NOW"].Value;

            Response.Write("방금 구운 쿠키 값 : " + now);

        }

    }

}

 




-------------------------------------------------------------------------------------



[실행결과]

--> 첫 실행 화면. 아래그림의 웹 페이지에서  "쿠키에 현재시간 저장"버튼을 누르면...




--> "쿠키에 현재시간 저장"버튼을 누른 후 화면.




-------------------------------------------------------------------------------------




"방금 구운 쿠기 값"을 다른 웹페이지에서도 확인해보기위해 "FrmCookiesShow.aspx"라는 "웹폼(Web Form)"을 하나 생성하고, "FrmCookiesShow.aspx"의 "코드비하인드페이지"인 "FrmCookiesShow.aspx.cs"에 아래와 같이 코드를 작성한다.




[FrmCookiesShow.aspx.cs] 소스코드



using System;

using System.Web;

 

 

public partial class FrmCookiesShow : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

        // 쿠키 읽어오기

        if (Request.Cookies["NOW"] != null)

        {

            string now = Request.Cookies["NOW"].Value;

            Response.Write(

                "FrmCookies 페이지에서 구운 쿠키 값 : " + now);

        }

 

        // 코드레벨에서 HttpCookie 클래스 사용해서 쿠키 생성

        HttpCookie myName = new HttpCookie("MyName");

        myName.Values.Add("Name", "용준");

        myName.Values.Add("Nick", "RedPlus");

        Response.Cookies.Add(myName);

 

        // Name Nick을 따로 출력

        HttpCookie saved = Request.Cookies["MyName"];

        Response.Write(myName.Values["Name"] + "<br >");

        Response.Write(myName.Values["Nick"] + "<br >");

    }

}

 




-------------------------------------------------------------------------------------



[실행결과]

--> [FrmCookiesShow.aspx.cs]에서 작성한 코드를 통해 "FrmCookies" 페이지에서 구운 쿠키값을 아래그림과 같이 웹 페이지에 출력하였다.







'.NET프로그래밍 > ASP.NET 3.5 SP1' 카테고리의 다른 글

WebOutputCache  (0) 2009.10.20
FrmQueryString  (0) 2009.10.20
FrmViewState  (0) 2009.10.20
FrmCache  (0) 2009.10.20
FrmSession  (0) 2009.10.20
Posted by holland14
:


[FrmViewState.aspx]소스코드 및 디자인



<%@ Page Language="C#" AutoEventWireup="true" CodeFile="FrmViewState.aspx.cs" Inherits="FrmViewState" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <title></title>

</head>

<body>

    <form id="form1" runat="server">

    <div>

   

        <asp:Button ID="btnClick" runat="server" Text="처음 로드 시간"

            onclick="btnClick_Click" />

        <br />

        <asp:Label ID="lblDisplay" runat="server" Text=""></asp:Label>

   

    </div>

    </form>

</body>

</html>

 






------------------------------------------------------------------------------------------------------



[FrmViewState.aspx.cs] 소스코드



using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

 

public partial class FrmViewState : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

        // 처음 로드시

        if (!Page.IsPostBack)

        {

            // 뷰 상태 개체에 데이터를 보관

            ViewState["LOAD_TIME"] = DateTime.Now;

        }

    }

 

    protected void btnClick_Click(object sender, EventArgs e)

    {

        // ViewState에 저장된 값 출력

        if (ViewState["LOAD_TIME"] != null)

        {

            this.lblDisplay.Text = "로드시간 : "

                + Convert.ToDateTime(ViewState["LOAD_TIME"]).ToShortTimeString();

        }

    }

}

 



------------------------------------------------------------------------------------------------------



[실행결과]

--> 첫 실행화면. 아래그림의 웹 페이지에서 "처음 로드 시간"버튼을 누르면...




--> "처음 로드 시간"버튼 아래에 있는 "레이블"에 "ViewState"에 저장된 값이 출력된다.




'.NET프로그래밍 > ASP.NET 3.5 SP1' 카테고리의 다른 글

FrmQueryString  (0) 2009.10.20
FrmCookies  (0) 2009.10.20
FrmCache  (0) 2009.10.20
FrmSession  (0) 2009.10.20
FrmApplication  (0) 2009.10.20
Posted by holland14
:


[FrmCache.aspx.cs] 소스코드



using System;

 

public partial class FrmCache : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

        //[3] 캐시 개체

        Cache["NAME"] = "구하라";

 

        if (Cache["NAME"] != null)

        {

            Response.Write(Cache["NAME"].ToString());

        }

    }

}

 



-------------------------------------------------------------------------------------



[실행결과]

--> 웹 페이지에 아래그림과 같이 출력된다. (위에 있는 [FrmCache.aspx.cs] 소스코드에서 분홍색 형광펜으로 칠해진 코드부분과 비교해볼 것!)







'.NET프로그래밍 > ASP.NET 3.5 SP1' 카테고리의 다른 글

FrmCookies  (0) 2009.10.20
FrmViewState  (0) 2009.10.20
FrmSession  (0) 2009.10.20
FrmApplication  (0) 2009.10.20
상태관리(State Management)  (0) 2009.10.20
Posted by holland14
: