0

カスタム メンバーシップ プロバイダーを使用して、既存の asp.net Web フォーム アプリケーションに OpenAuth 認証を追加することを計画しています。これは、私がネットで見た問題ではありません ( http://blogs.msdn.com/b/webdev/archive/2012/09/12/integrate-openauth-openid-with-your-existing-asp- net-application-using-universal-providers.aspx ) を使用していますが、OpenAuth が追加したいデータの 2 つの追加テーブル用のローカル データベースにアクセスできません。すべてのデータは、Web サービスを使用して取得する必要があります。代わりに Web サービスを使用するために OpenAuth のデータベース アクセスの実装をオーバーライドする簡単な方法はありますか? おそらく、誰かがすでにこれを行っているか、またはどのように行うべきかについて何かアイデアを持っていますか?

4

1 に答える 1

0

データベース通信をオーバーライドして Web サービスを使用する方法の手がかりが見つからなかったため、クラス Microsoft.AspNet.Membership.OpenAuth を模倣する新しいカスタム クラスを作成しました。私が作成したメソッドは、Login、AddAccountToExistingUser、CreateUser、GetAccountsForUser、および DeleteAccount です。これらはすべて、カスタム データベース スキーマにデータを格納する Web サービスを適切に呼び出します。Login メソッドは FormsAuthentication.SetAuthCookie も呼び出します。

Microsoft.AspNet.Membership.OpenAuth の残りの部分は、私が知る限り使用できます。LocalPasswordと呼ばれるすべてのメソッドも実装する必要があると思いますが、まだ実装していません。

これはおそらく最善の解決策ではありませんが、私にとってはうまくいき、Google などを使用してユーザーを認証できるようになりました。

于 2013-05-14T09:30:58.670 に答える