ASP.NET チュートリアルlogin
ASP.NET チュートリアル
著者:php.cn  更新時間:2022-04-11 14:18:18

Web ページのセキュリティ


ASP.NET Web ページ - WebSecurity オブジェクト


説明

WebSecurity オブジェクト は、ASP.NET Web ページ アプリケーションのセキュリティと認証を提供します。

WebSecurity オブジェクトを使用すると、ユーザー アカウントの作成、ユーザーのログインとログアウト、パスワードのリセットまたは変更、その他多くのセキュリティ関連機能を実行できます。


WebSecurity オブジェクト リファレンス マニュアル - プロパティ

プロパティ説明
CurrentUserId 現在ログインしているユーザーのIDを取得します。
CurrentUserName 現在ログインしているユーザーの名前を取得します。
HasUserId現在ユーザー ID がある場合は true を返します。
IsAuthenticated 現在のユーザーがログインしている場合は true を返します。

WebSecurity オブジェクト リファレンス マニュアル - メソッド

メソッド 説明
ChangePassword() 指定されたユーザーのパスワードを変更します。
confirmAccount()アカウント確認トークンを使用してアカウントを確認します。
CreateAccount() 新しいユーザーアカウントを作成します。
CreateUserAndAccount() 新しいユーザー アカウントを作成します。
GeneratePasswordResetToken() ユーザーがパスワードをリセットできるように、電子メールでユーザーに送信できるパスワード リセット トークンを生成します。
GetCreateDate() 指定されたメンバーの作成時刻を取得します。
GetPasswordChangeDate()パスワード変更の日時を取得します。
GetUserId() ユーザー名に基づいてユーザー ID を取得します。
InitializeDatabaseConnection() WebSecurity システム (データベース) を初期化します。
Isconfirmed() ユーザーが確認されているかどうかを確認します。確認された場合は true を返します。 (メールによる確認などが可能です。)
IsCurrentUser() 現在のユーザー名が指定されたユーザー名と一致するかどうかを確認します。一致するものがあれば true を返します。
Login()認証トークンを設定し、ユーザーをログインします。
Logout()認証トークンを削除し、ユーザーをログアウトします。
RequireAuthenticatedUser()ユーザーが認証されていない場合、HTTP ステータスを 401 (Unauthorized) に設定します。
RequireRoles()現在のユーザーが指定されたロールのメンバーではない場合、HTTP ステータスを 401 (未承認) に設定します。
RequireUser() 現在のユーザーが指定されたユーザー名のユーザーではない場合、HTTP ステータスを 401 (未承認) に設定します。
ResetPassword() パスワードリセットトークンが有効な場合は、ユーザーのパスワードを新しいパスワードに変更します。
UserExists() 指定されたユーザーが存在するかどうかを確認します。


技術データ

名前
クラスWebMatrix.WebData.WebSecurity
名前空間 WebMatrix.WebData
アセンブリWebMatrix.WebData .dll


WebSecurity データベースを初期化する

コードで WebSecurity オブジェクトを使用する場合は、まず WebSecurity データベースを作成または初期化する必要があります。

Web ルート ディレクトリに、_AppStart.cshtml というページを作成します (既に存在する場合は、ページを直接編集します)。

次のコードをファイルにコピーします:

_AppStart.cshtml

@{
WebSecurity.InitializeDatabaseConnection("Users", "UserProfile", "UserId", "Email", true);
}

上記のコードは、Web サイト (アプリケーション) が起動するたびに実行されます。 WebSecurity データベースを初期化します。

「Users」 は、WebSecurity データベース (Users.sdf) の名前です。

"UserProfile" は、ユーザー プロファイル情報を含むデータベース テーブルの名前です。

"UserId" は、ユーザー ID (主キー) を含む列の名前です。

「Email」 は、ユーザー名を含む列の名前です。

最後のパラメータ true はブール値で、ユーザー設定テーブルとメンバーシップ テーブルが存在しない場合にテーブルが自動的に作成されることを示します。テーブルを自動的に作成したくない場合は、パラメータを false に設定する必要があります。

lamp.giftru​​eはデータベーステーブルを自動的に作成することを意味しますが、データベースは自動的には作成されません。したがって、データベースが存在する必要があります。


WebSecurityデータベース

UserProfileテーブルは、各ユーザー、ユーザーID (主キー)、およびユーザー名(電子メール)のレコードを保存するために作成されます:

UserIdEmail
1 john@johnson.net
2peter@peterson.com
3lars@larson.eut

Membershipテーブルにはメンバーシップが含まれています情報、例えば、 user は Create 、メンバーが認定されているかどうか、メンバーが認定された時期など。

詳細は次のとおりです(一部の列は表示されません):

UserCreateconfirmationIsLastパスワードパスワード112.04.2012 16:12:17NULLTrueNULLAFNQhWfy....12.04.2012 16:12:1 7

注: すべての列と内容を表示したい場合は、データベースを開いて、内部の各テーブルを確認してください。


簡単なメンバーシップ構成

WebSecurity オブジェクトを使用する場合、サイトが ASP.NET Web ページ メンバーシップ システム SimpleMembership を使用するように構成されていない場合、エラーが報告されることがあります。

ホスティングプロバイダーのサーバーの構成がローカルサーバーの構成と異なる場合、エラーが報告される場合もあります。この問題を解決するには、Web サイトの Web.config ファイルに次の要素を追加します。

<appSettings>
<add key="enableSimpleMembership" value="true" />
</appSettings>

Id
Date
Token
confirmed
Password
Failure
変更