0

私は、いくつかのレポートを行う既存の ASP.NET Web アプリケーションを持っている製品所有者と協力しています。説明のために、これを「WebApp1」と呼びましょう。

彼女は、フォーラム機能を提供する DotNetNuke ポータルを提供するように要求しました。

要件の一部として、DotNetNuke ポータルのメイン ログイン画面は、「WebApp1」のユーザー データベースに対してユーザーを認証する必要があります。「WebApp1」の既存のユーザー テーブルには、ハッシュ化されたパスワードがあります。

これらの要件を調査していると、MemberShipProvider パターンと AuthenticationProvider の両方が同じ要件に対応しているように見えることがわかりました。

DotNetNuke の観点から、これらのプロバイダーの違いは何ですか? 最も複雑でないパターンはどれですか?

私の DotNetNuke に関する経験は限られていることをご承知おきください。

StackOverflow コミュニティのご協力に感謝いたします。

4

2 に答える 2

0

---- 私はPowerDNN.com で働いています----

こんにちは、Michael さん、数か月前、DotNetNuke Web サイトを Linux ベースのバックエンド システムに接続して認証を行う場合と同様のことを行うメンバーシップ プロバイダーを書きました。少しだまされたような気がしましたが、私の解決策はかなりうまくいきました。

1) DotNetNuke のメンバーシップ プロバイダーから継承しました。2) 「ログイン」機能をカスタム コードでオーバーライドしました。2.1) リモートシステムでユーザーを見つけます。2.2) リモート ユーザーの資格情報を検証します。2.3) ユーザーがまだ存在しない場合は、DNN にユーザーを作成します。2.4) すべての権限を DNN に同期します 2.5) ユーザーをログインします。

参考までに、ローカル ユーザーを作成するときに、"CUSTOM-#####" のようなプレフィックスを付けます。##### はリモート システムでの ID です。そうすれば、どのユーザーが「通常の」dnn ユーザーで、どのユーザーが同期ユーザーかを簡単に判断できます。

また、リモート DB でユーザーが見つからない場合は、DNN 自体に対して認証します (これにより、「ホスト」や「管理者」などのユーザーも機能します)。

これが役立つことを願っています!

于 2013-02-11T19:26:44.663 に答える
0

認証はログインのみを処理します ({username} は誰で、正しいパスワードを持っていますか)。

メンバーシップは、それに加えて承認などを処理します (あなたが誰であるかがわかったので、許可されていますか)

于 2013-02-11T16:10:31.053 に答える