私の質問への回答を得るために長い間、 "私はカスタムMembershipProvider実装を書くべきか、自分のカスタムシステムを作るべきですか?"だから、私はMembershipProviderのやり方を見て、メンバーシッププロバイダの作成を開始するのはそれほど悪くないと決めました。しかし、当時私は何か問題を感じています。カスタムメンバーシッププロバイダは、本当に価値のあるものですか?
たとえば、私のシステムにはユーザー名はありません。電子メールはユーザー名です。だから、createUserメソッドは次のようになります。
public override MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status)
{
bool userExists = GetUser(email);
if (userExists) {
status = MembershipCreateStatus.DuplicateEmail;
return null;
}
bool? tryExists = regTryExists(email);
if (tryExists.HasValue && tryExists.Value && !userExists)
{
UserRepository.CreateUser(email, password);
status = MembershipCreateStatus.Success;
return GetUser(email);
}
return null;
}
また、このように私はFindUsersByName
方法、GetUserNameByEmail
を必要としません:
public override string GetUserNameByEmail(string email)
{
return email;
}
public override MembershipUserCollection FindUsersByName(string usernameToMatch, int pageIndex, int pageSize, out int totalRecords)
{
throw new NotImplementedException();
}
だからここに私はusername, passwordQuestion, passwordAnswer, isApproved
引数を必要としません。
また、私のシステムではユーザーからの質問はありませんので、私は
public override bool ChangePasswordQuestionAndAnswer(string username, string password, string newPasswordQuestion, string newPasswordAnswer)
{
return false;
}
public override string ResetPassword(string username, string answer)
{
throw new NotImplementedException();
}
ような方法を必要としないそしてこれは、廃棄物と面倒な会員制のほんの一部です。それは私が望むほどリアルではありません。
質問がありますので、MembershipProviderに行く価値はありますか?私を連れてきてください。 MembershipSystemには本当に価値のあるシステムになる利点がありますか?
しかし、私は厄介なツールを使うことにさらなる努力をしても、「開発のエネルギー」があればこの無駄ではないでしょうか? – kseen
私のdev-mgr帽子を置いて、このビルド・バイ・シナリオのROIを決定しましょう。ビルド:独自の認証プロバイダ(dbデザイン、CRUD sprocs(25個あります!)、テストなど)をビルドする週数(少なくとも** **)。 「購入する」(つまり、既存のMembershipProviderを使用する):数日間悩まされ、いくつかのsprocs /メソッドを再トラッキングしてから、あなたの人生を乗り切らなければならない。 完全に新しいasp.net認証システムを構築し、それをGitHubに投稿してすべての栄光を得たいのでなければ、気にしないでください! –
あなたの説明をありがとう!非常に良い考え。あなたが私の疑問をすべて破ったように見える! Btw CRUDの25のprocsは何ですか? – kseen