28

私は現在、非常に古いが動作している従来のASPサイトをASP.Netに変換しています。

それは完全にカスタムで書かれたユーザー管理システムを持っています。それはうまく機能しますが、作業中のいくつかの将来のプロジェクトのためにもっと柔軟にしたいと思っているので、本当に更新する必要があります。

これについて誰かに聞いたところ、「マイクロソフトプロバイダーを使う必要がある」と言われ、マイクロソフトがこれらすべてを無料でリリースする方法と、それらがどれほど優れているか、そして可能な限り再利用すべきかについて講義しました。

私はそれについてかなりの調査を行い(主にhttp://asp.net/learnのビデオを見て)、必要なアイテムのドラッグアンドドロップコンポーネントがあるように見えるので、いくつかの機能に非常に感銘を受けています私は書く年齢です。

ただし、現在のメンバーシップデータベースは説明が複雑で、多くの内部関係を持つ完全にカスタム作成されたデータベースです...デフォルトのMicrosoftプロバイダーとは実際には「互換性がありません」。

方法:カスタムメンバーシッププロバイダーを作成する方法を確認しました。、しかし私は自分の快適ゾーンから少し外れていると感じ、それが遅くなるか、セキュリティホールを導入するか、単に機能しないのではないかと心配しています。

結局のところ、Microsoftメンバーシッププロバイダーは私のために働くはずです-私が本当に必要とする唯一のカスタマイズは、データベースのユーザー名/パスワードフィールドを使用するためのログインと、数分の1のカスタムコードを含むユーザースクリプトの作成です政党制(サービスの提供などが必要)。

私はちょうど疑問に思っていました、あなたは同じような状況に直面した場合どうしますか?

  1. Microsoftメンバーシッププロバイダーを使用して、どういうわけかそれを機能させます(提案が必要ですが)

  2. Microsoftメンバーシッププロバイダーを使用しますが、コードに合わせてカスタマイズされたカスタムプロバイダーを使用します。

  3. 完全にカスタマイズされた独自のソリューションを使用しますか?

4

4 に答える 4

8

そのビデオは物事を複雑にします:)カスタムプロバイダーを実装する場合は、既存のプロバイダーのリフレクターから始めるのが良いでしょう:)

もちろん、簡単で汚いオプションとして、SQL メンバーシップ プロバイダーが使用するストアド プロシージャをハッキングすることもできますが、サービスをプロビジョニングするためのカスタム コードはおそらくそれを拡張しています。

考えてみれば、サービスのリモート プロビジョニングは実際にはメンバーシップ プロバイダーに属しておらず、実際にはメンバーシップ機能ではありません。メンバーシップが行うのは、ユーザー名とパスワード、およびそれらに関する認証を提供することだけです。私自身の考えでは、サービスのプロビジョニングをそこから移動し、ユーザーが作成された後に ASP.NET サイトで実行する必要があります。たとえそれが、メンバーシップ プロバイダーが処理を行った後にストアド プロシージャを呼び出すだけであってもです。これを行うと、SQL メンバーシップ プロバイダーが必要なすべてのことを行うことがわかる場合があります (おそらく、ロールとプロファイル プロバイダーも同様です)。したがって、記述するコードが大幅に少なくなります。

于 2009-12-04T11:07:52.557 に答える
8

私も過去に似たような状況にあったことがあります。どちらの場合も、既存のメカニズムの周りにプロバイダー (MembershipProvider、RoleProvider、ProfileProvider) のカスタム実装を作成しました。

どちらの場合も、たとえば web.config などで簡単な検証ガビンを提供するために、読み取り専用アクセス用のプロバイダー実装のみを使用しました。ユーザー管理コードは問題なく機能したため、そのままにしておきました。

于 2009-12-04T10:53:01.400 に答える
3

既存のプロバイダーが機能している(データに適切なフィールドがある)場合は、それを使用して開始します。後でそれをカスタマープロバイダーに非常に簡単に置き換えることができます(構成値を1回変更するだけです)。

そのための「すぐに使える」ASP.NET管理インターフェイスがないことに注意してください。独自のインターフェイスを作成するか、サードパーティのインターフェイスを使用する必要があります。

于 2009-12-02T18:32:44.023 に答える