[ASP.NET Web.Config폼인증예제]authentication, authorization

홈 > 공유팁! > 프로그램 관련
프로그램 관련

[ASP.NET Web.Config폼인증예제]authentication, authorization

꽁스짱 0 1453

[ASP.NET Web.Config폼인증예제]authentication, authorization


웹사이트에 접근시 로그인이 안된 경우 Login.aspx를 반드시 거치도록 하는 간단한
ASP.NET 폼 인증 예제이다.

1. Web.Config

중간쯤에 아래 내용을 추가하자.

 <!-- 사이트 접근시 기본적으로 로그인 페이지를 통해 로그인을 해야함  -->
    <!-- defaultUrl : 로그인 후 이동할 페이지  -->
    <authentication mode="Forms" >
      <forms loginUrl="Login.aspx"  name=".ASPXFORMSAUTH">
      </forms>
    </authentication>
    <!-- ? 는 로그인 안한 사용자는 웹리소스에 접근 막는다는 의미-->
    <authorization>
      <deny users="?" />
    </authorization>

2. Global.asax를 수정 하자.

웹사이트의 페이지 하단에 로그인한 이메일 주소를 출력해 준다.

 void Application_EndRequest(object sender, EventArgs e)
        {
            Response.Write("<hr/>"); 
            Response.Write("Hello, " + Context.User.Identity.Name);
        }


3. Login.aspx를 만들자.

웹사이트의 모든 페이지로 접근을 하면 로그인이 안된경우 이 페이지가 나타나게 된다. 

예제에서는 "test@oraclejavacommunity.com", "1234"로 로그인을 하면 된다.

<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Security" %>

<script runat="server">
  void Logon_Click(object sender, EventArgs e)
  {
    if ((UserEmail.Text == "test@oraclejavacommunity.com") && 
            (UserPass.Text == "1234"))
      {
          FormsAuthentication.RedirectFromLoginPage 
             (UserEmail.Text, Persist.Checked);
      }
      else
      {
          Msg.Text = "Email, Password를 확인 하세요.";
      }
  }
</script>
<html>
<head id="Head1" runat="server">
  <title>Forms Authentication - Login</title>
</head>
<body>
  <form id="form1" runat="server">
    <h3>
      Logon Page</h3>
    <table>
      <tr>
        <td>
          E-mail address:</td>
        <td>
          <asp:TextBox ID="UserEmail" runat="server" /></td>
        <td>
          <asp:RequiredFieldValidator ID="RequiredFieldValidator1" 
            ControlToValidate="UserEmail"
            Display="Dynamic" 
            ErrorMessage="Cannot be empty." 
            runat="server" />
        </td>
      </tr>
      <tr>
        <td>
          Password:</td>
        <td>
          <asp:TextBox ID="UserPass" TextMode="Password" 
             runat="server" />
        </td>
        <td>
          <asp:RequiredFieldValidator ID="RequiredFieldValidator2" 
            ControlToValidate="UserPass"
            ErrorMessage="Cannot be empty." 
            runat="server" />
        </td>
      </tr>
      <tr>
        <td>
          Remember me?</td>
        <td>
          <asp:CheckBox ID="Persist" runat="server" /></td>
      </tr>
    </table>
    <asp:Button ID="Submit1" OnClick="Logon_Click" Text="Log On" 
       runat="server" />
    <p>
      <asp:Label ID="Msg" ForeColor="red" runat="server" />
    </p>
  </form>
</body>
</html>
 
0 Comments
제목