.NET開発者のためのブログメディア
ASP.NETのフォーム認証でログイン機能を実装する方法
Webアプリケーションでは、しばしば限られたユーザーにのみ利用できるページを作りたい場合があります。ASP.NETを使えばユーザー登録したデータと照合して、ログインできるようにするフォーム認証機能を簡単に実装可能です。
- SE
- ASP.NETでログイン機能を実装したいんですけど、どうしたら良いですか?
- PL
- フォーム認証を使うと、比較的簡単に実装することができますよ。順を追って説明していきましょう。
目次
認証ページ作成の準備
ログインフォームを作成するにあたって、前準備として用意しなければならないことがあります。
- web.configファイルの準備
このファイルはユーザー認証情報であるIDとパスワードを記録したもので、この情報をもとにしてログイン認証が行われます。また、このファイルを配置する場所としては、アプリケーション・ルート配下に置かなければなりません。
- サブフォルダ配下の設定
認証を設定する上では、どのファイルに対してどのユーザーからのアクセスを許可するかを定義しなければなりません。これにより、ユーザーごとに決められたページへのアクセス権限を設定することが可能です。
ログインページとロジックの作成
ログインページの作成には、テキストボックスなどでユーザーIDとパスワードを入力できるようにするほか、ユーザーのアクセス可否の判定と、認証された証明として用いるクッキーを発行することが最低限必要です。クッキーを利用することで、画面遷移ごとに必要なユーザー情報を認証確認するロジックを組む手間を、大きく削減することができます。
ログイン認証のコード
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<system.web>
<authentication mode="Forms">
<forms name="test.NET" loginUrl="login_test.aspx"
protection="All" timeout="30">
<credentials passwordFormat="Clear">
<user name="testuser" password="pass" />
</credentials>
</forms>
</authentication>
</system.web>
</configuration>
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
<%@ Page ContentType="text/html" Language="C#" %>
<script runat="Server">
void objBtn_Click(Object sender, EventArgs e) {
if(FormsAuthentication.Authenticate(usr_id.Text, usr_pass.Text)){
FormsAuthentication.RedirectFromLoginPage(usr_id.Text,false);
}else{
objLbl.Text="正しいユーザーID、パスワードを入力してください";
}
}
</script>
<html>
<body>
<form runat="Server">
<center>
<b>ID:</b>
<asp:TextBox id="usr_id" runat="Server" Columns="10" /><br />
<b>PASS:</b>
<asp:TextBox id="usr_pass" runat="Server" Columns="10" TextMode="Password" />
<br/>
<asp:Button id="objBtn" runat="Server" Text="ログイン" OnClick="objBtn_Click" /><br />
<asp:Label id="objLbl" runat="Server"/>
</center>
</form>
</body>
</html>
|
パスワードはSHAで暗号化する
web.configにパスワードを直に書いてしまうと、不正アクセスされた場合にIDとパスワードが漏洩してしまう危険性があります。そのため、不可逆な暗号化形式であるSHAを用いて、暗号化する必要があるでしょう。暗号化された文字列が漏洩したとしても元のパスワードを復元することができないので、高い安全性を担保することが可能になります。
- SE
- 思ったより簡単に実装できてしまうんですね。
- PL
- そうですね。最低限必要な要素さえ押さえておけば問題ないでしょう。
セキュリティ面に気を付ければ難しいことはない
ASP.NETでフォーム認証機能を実装する方法では、特にパスワードの暗号化に配慮する必要があります。ユーザー情報をSHAで暗号化することにより、高いセキュリティを維持することが可能です。あとは入力フォームとユーザー情報ファイルを用意するだけでフォーム認証機能を実装することができます。
Search キーワード検索
Popular 人気の記事
-
.NET Framework 3.5をWindows10にインストールする方法
2019年10月24日 -
【VB.NET入門】DataGridViewの使い方まとめ
2019年12月22日 -
EdgeとChromeはどう違う?それぞれのスペック7つを比較解説!
2020年09月28日 -
VB.NETをおすすめする3つの理由とは?VBAとの違いや勉強方法を解説
2019年12月21日 -
Windows10のテキストエディタおすすめ20選!選ぶポイント3つ
2020年04月28日
reccomended おすすめ記事
-
C#のusingステートメントでリソースの解放【Disposeとの違いとは】
2020年03月17日 -
【SQL Serverログの操作】トランザクションログの使用量を確認する方法
2020年03月16日 -
【.NETが統合】.NET 5の概要と今後のリリース予定
2020年03月05日
Categories 連載一覧
Tags タグ一覧
Jobs 新着案件
-
採用管理システム運用保守/Apache/東京都渋谷区/【WEB面談可】
月給50万~60万円東京都渋谷区(代々木駅) -
採用管理システム開発のテスター/Apache/東京都渋谷区/【WEB面談可】
月給25万~35万円東京都渋谷区(代々木駅) -
Webアプリケーション運用保守/Ruby/東京都江東区/【WEB面談可】
月給50万~60万円東京都江東区(亀戸駅) -
Webアプリケーション開発(既存機能改修)のテスター/Ruby/東京都江東区/【WEB面談可】
月給25万~35万円東京都江東区(亀戸駅) -
出版会社向けRPAツール運用保守/東京都千代田区/【WEB面談可】
月給50万~60万円東京都千代田区(東京駅)