ASP.NET Web Pages - WebSecurity オブジェクト
- 前のページ WebPages クラス
- 次のページ WebPages データベース
説明
WebSecurity オブジェクトは、ASP.NET Web Pages アプリケーションにセキュリティと認証を提供します。
WebSecurity オブジェクトを通じて、ユーザーアカウントの作成、ログイン、ログアウト、パスワードのリセットや変更などができます。
WebSecurity オブジェクトリファレンスマニュアル - 属性
属性 | 説明 |
---|---|
CurrentUserId | 現在のユーザーの ID を取得します。 |
CurrentUserName | 現在のユーザーの名前を取得します。 |
HasUserId | 現在のユーザーがユーザー ID を持つかどうかを示す値を取得します。もしない場合は、true を返します。 |
IsAuthenticated | 現在のユーザーの認証状態を取得します。 |
WebSecurity オブジェクトリファレンスマニュアル - メソッド
属性 | 説明 |
---|---|
ChangePassword() | ユーザーのパスワードを変更します。 |
ConfirmAccount() | アカウントの有効性を確認し、アカウントをアクティブにします。 |
CreateAccount() | 新しいユーザーアカウントを作成します。 |
CreateUserAndAccount() | 新しいユーザーアカウントを作成します。 |
GeneratePasswordResetToken() | ユーザーにメールで送信できるパスワードリセットトークンを生成します。 |
GetCreateDate() | 指定のメンバー資格アカウントの作成日付と時間を返します。 |
GetPasswordChangeDate() | 指定のメンバー資格アカウントのパスワードを最後に変更した日付と時間を返します。 |
GetPasswordFailures SinceLastSuccess() |
最後の成功ログインまたはメンバー資格アカウントの作成以来、誤ったパスワード入力の回数を返します。 |
GetUserId() | 指定ユーザー名に基づいてユーザー ID を返します。 |
GetUserIdFrom PasswordResetToken () |
パスワードリセットトークンからユーザーIDを返します。 |
InitializeDatabaseConnection() | ユーザー情報を含むデータベースに接続してメンバーシップシステムを初期化します。 |
IsAccountLockedOut() | 指定のメンバーシップアカウントがパスワード試行回数が多すぎてロックされているかどうかを示します。 |
IsConfirmed() | ユーザーが確認されているかどうかを示す値を返します。 |
IsCurrentUser() | ログイン中のユーザーのユーザー名が指定ユーザー名と一致するかどうかを示す値を返します。 |
Login() | ユーザーをログインします。 |
Logout() | ユーザーをログアウトします。 |
RequireAuthenticatedUser() | ユーザーが認証されていない場合は、HTTPステータスを401(未認証)に設定してください。 |
RequireRoles() | 現在のユーザーが指定のロールに属していない場合は、HTTPステータスコードを401に設定してください。 |
RequireUser() | 現在のユーザーが指定ユーザーでない場合は、HTTPステータスコードを401に設定してください。 |
ResetPassword() | パスワードリセットトークンを使用してパスワードをリセットします。 |
UserExists() | ユーザーが存在するか確認します。 |
技術データ
名称 | 値 |
---|---|
Class | WebMatrix.WebData.WebSecurity |
Namespace | WebMatrix.WebData |
Assembly | WebMatrix.WebData.dll |
WebSecurityデータベースの初期化
WebSecurityオブジェクトを使用する前に、WebSecurityデータベースを作成または初期化する必要があります。
webのアプリケーションディレクトリ内で、_AppStart.cshtmlページを作成または編集します。
このファイルに以下のコードを記述します:
_AppStart.cshtml
@{ WebSecurity.InitializeDatabaseConnection("Users", "UserProfile", "UserId", "Email", true); }
ウェブサイトが起動するたびに上記のコードが実行されます。それによりWebSecurityデータベースが初期化されます。
「Users」はWebSecurityデータベースの名前です。(Users.sdf)
「UserProfile」はユーザー設定情報を含むデータベーステーブルの名前です。
"UserId" はユーザーIDを含む列の名前(プライマリキー)です。
"Email" はユーザー名を含む列名です。
最後の引数 true は論理値で、ユーザープロファイルテーブルおよびメンバーシップテーブル(それらが存在しない場合)を作成するかどうかを示します。
ヒント:trueは自動的にデータベーステーブルが作成されることを示していますが、データベース自体は自動的に作成されません。存在する必要があります。
WebSecurity データベース
ユーザープロファイルテーブルの各レコードはユーザーを表しており、ユーザーID(プライマリキー)とユーザー名(メールアドレス)が含まれています:
UserId | |
---|---|
1 | john@johnson.net |
2 | peter@peterson.com |
3 | lars@larson.eut |
メンバーシップテーブルにはメンバーシップ情報が含まれており、例えばユーザーがいつ作成されたか、メンバーシップを確認したかどうか(およびいつ)が含まれています。
こんな感じです(一部の列は省略されています):
UserId | 作成日 | 確認 トークン |
はず 確認 |
最後の パスワードエラー |
パスワード | パスワード変更 |
---|---|---|---|---|---|---|
1 | 12.04.2012 16:12:17 | NULL | True | NULL | AFNQhWfy.... | 12.04.2012 16:12:17 |
注:すべての列とすべての内容を見たい場合は、WebMatrixを通じてデータベースを開き、各テーブルを確認してください。
シンプルメンバー資格設定
サイトが ASP.NET Web Pages メンバー資格システム SimpleMembershipを使用していない場合、WebSecurity オブジェクトを使用するとエラーが発生する可能性があります。
ホストプロバイダーの設定がローカルサーバーと異なる場合、エラーが発生します。この問題を解決するために、サイトの Web.config ファイルに以下の要素を追加してください:
<appSettings> <add key="enableSimpleMembership" value="true" /> </appSettings>
- 前のページ WebPages クラス
- 次のページ WebPages データベース