ユーザー名を受け入れる代わりに、メンバーシップAPIでユーザー名として電子メールアドレスを使用します。 私は電子メールアドレスを使用して自分のサイトにサインアップし、ユーザー名とパスワードの代わりに電子メールIDとパスワードを使用してログインできるようにしたいと考えています。ASP.NETでユーザー名として電子メールアドレスを設定するメンバーシッププロバイダ
4
A
答えて
4
強制的にユーザー名=ユーザーのメールを送信するだけです。
これを行うには、ユーザー作成フォームにRegExバリデーターを入れて、適切な電子メールのみをユーザー名として許可します。
ユーザーの電子メールに基づいて既存のユーザー名を変更します。
7
これは私たちが行ったことであり、再利用可能であり、web.configで再登録できます。あなたがそれについて考えるなら、これが重要な位置です。あなたの妥当性チェックとフロントエンドがエンドユーザにユーザ名が電子メールであるべきことを示す限り、適切な妥当性チェックを行います。ショートカット版の新しい方法と、ファサードの背後にあるオリジナルを隠す/変更する。
public class EmailAsUsernameMembershipProvider : SqlMembershipProvider
{
public MembershipUser CreateUser(string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status)
{
return base.CreateUser(email, password, email, passwordQuestion, passwordAnswer, isApproved, providerUserKey, out status);
}
private new MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status)
{
return base.CreateUser(email, password, email, passwordQuestion, passwordAnswer, isApproved, providerUserKey, out status);
}
public override bool RequiresUniqueEmail
{
get
{
return true;
}
}
}
5
既にこのスレッドで説明したようにこれは可能なすべてのですが、注意すべき一つのことがあります:電子メール(テーブル・メンバーシップ)が256個の文字である一方で、データベースにユーザ名が50文字(表ユーザ)の長さであります長いです。実際、これは短い電子メールアドレスを意味します。 :)
関連する問題
- 1. ASP.NET SQLMembershipProvider - ユーザー名として電子メール
- 2. WordPressユーザーに電子メールアドレスを設定する
- 3. ASP.NETでLive Connect APIを使用してユーザーの電子メールアドレスを取得する
- 4. ASP.NETフォーム認証でユーザー名の代わりに電子メールアドレスを使用
- 5. BlackBerryシミュレータで電子メールアドレスを設定する
- 6. Python Flask - ユーザー名ではなく、電子メールアドレスでログインしてください。
- 7. .NETでユーザーのExchangeサーバーと電子メールアドレスを取得する
- 8. ASP.NETメンバーシッププロバイダ:動的にアプリケーション名を設定する
- 9. 1つのプロジェクトに対してユーザー名/電子メールを設定しますか?
- 10. asp.netメンバーシッププロバイダ:異なるアプリケーション名のユーザーを作成します
- 11. symfony:リクエストパラメータとしての電子メールアドレス
- 12. Ubuntu - cronジョブの 'from'電子メールアドレスを設定する
- 13. 電子メールをユーザーに送信せずに電子メールアドレスを確認する
- 14. Phabricatorでユーザーの電子メールアドレスを変更する方法
- 15. Xsl:xsl:バリューオブと電子メールアドレス
- 16. C# - Active Directoryユーザーのすべての電子メールアドレスを検索
- 17. Djangoはユーザーの電子メールアドレスを更新します
- 18. 電子メールアドレスのみを使用してユーザーを作成する - ruby on rails
- 19. 電子メールアドレスtld regex
- 20. 電子メールアドレスでActiveDirectoryを検索する
- 21. PHP Pear Mail Queueでバウンスバック電子メールアドレスを設定する方法は?
- 22. Drupalルール電子メールアドレスをユーザー参照に送信する
- 23. django social-authでユーザの電子メールアドレスを設定しない方法
- 24. JIRA REST APIを使用して電子メールアドレスでJIRAユーザーを検索
- 25. 複数の電子メールアドレスと件名行でエンコードを使用する方法
- 26. ASP.NETメンバーシッププロバイダ - Web.configではなくデータベースで設定を指定します。
- 27. Office365 APIは、送信者の電子メールアドレスに基づいて電子メールの署名を添付します
- 28. 電子メールアドレスを取得するには
- 29. インターネットベースの電子メールアドレスをフィルタリングする
- 30. デフォルトのMVCメンバーシッププロバイダを使用して登録した後で電子メールアドレスを変更すると、電子メールアドレスが重複しないようにするにはどうすればよいですか?
私はDAL/BLLとWebアプリケーション(ビジネス・ロジック・レイヤーのデータベース・アクセス・レイヤーとWebアプリケーションの異なるレイヤーの組み合わせで、SQLプロバイダー・クラスを継承する方法はできません)のような構造を持っているWebアプリケーションを使用しています。だから... – user685565
私たちのアプリは同じものを使用しています。これはasp.netのメンバーシップのものを使用する場合です。メンバーシップのものを使用したくない場合は、独自のメンバーシッププロバイダを作成する必要があります。私たちは、あなたのデータを照合するためにそのクエリをラップし、現在ログインしているユーザーに簡単にアクセスできるように、httpcontextに注入されたSecurityContextオブジェクトを持っています。あなたの質問でこの答えがそれをカバーしていない場合。 –