ホーム > .NET, ASP.NET 備忘録 > ユーザ登録をユーザ名とパスワードのみで行う

ユーザ登録をユーザ名とパスワードのみで行う

ASP.NET 2.0では認証ユーザを簡単につくれるようになりました。CreateUserWizardコントロールを貼り付けるだけでユーザを作成するページができてしまいます。

1

でも、ユーザ名とパスワードだけでユーザが作りたい、そんな場合はどうするのでしょうか。
まずはCreateUserWizardコントロールのプロパティを変更して何ができるのか探してみると、、、RequireEmailプロパティというのがありました。これをFalseに設定します。そうすると、電子メールの入力欄が消えます。

2

セキュリティの質問欄を消すには、、、web.configに設定を追加する必要がありました。

<configuration>
  <system.web>
    <membership>
      <providers>
        <remove name="AspNetSqlMembershipProvider" />
        <add name="AspNetSqlMembershipProvider"
        type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
        connectionStringName="LocalSqlServer"
        requiresQuestionAndAnswer="false"
        requiresUniqueEmail="false" />
      </providers>
    </membership>
  </system.web>
</configuration>

MemberShip関係の設定はAspNetSqlMembershipProviderという名前でmachine.configに記述されています。web.configに上記のように記述することで、machine.config上の設定を取り消し(remove)て、同じ名前の設定を追加(add)することができます。

3

ここでは必要な設定変更のために最低限の記述としてみました。
requiresQuestionAndAnswerfalseとすることでセキュリティの質問欄が消えます。また、requiresUniqueEmailfalseとする記述を追加しておかないと、登録時に有効な電子メールアドレスの入力が求められてしまいます。

4

電子メールについては、CreateUserWizardコントロールのRequireEmailプロパティとweb.configのrequiresUniqueEmail設定の2箇所の変更が必要なところが注意点ですね。

なお、AspNetSqlMembershipProviderではこの他に以下の設定の変更ができます。

  • enablePasswordRetrieval
  • enablePasswordReset
  • applicationName
  • passwordFormat
  • maxInvalidPasswordAttempts
  • minRequiredPasswordLength
  • minRequiredNonalphanumericCharacters
  • passwordAttemptWindow
  • passwordStrengthRegularExpression

これらの設定がどのように動作に関わるかについては、System.Web.Security.SqlMembershipProviderクラスの同名のプロパティについてのドキュメントが参考になります。
AspNetSqlMembershipProviderのtype属性でSqlMembershipProviderクラスを指定しています。この状態ではMemberShipの機能はSqlMembershipProviderクラスによって実現されているんですね。

カテゴリー:.NET, ASP.NET 備忘録
  1. まだコメントはありません。
  1. No trackbacks yet.

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。