0

顧客用の ASP ポータルを作成しました。それらはすべて同じ Web サイトにアクセスし、GUID である tokenid を渡します。この GUID は、彼らが所属している会社と、何にアクセスできるかを教えてくれます。

メンバーシップ プロバイダーを設定して、メール アドレスの重複を許可せず、同じアプリケーションの下にいる全員を許可しています。したがって、これを念頭に置いて、同じメールアカウントで複数の会社に登録できるようにするには、次のことができると考えました.

  1. トークンごと(会社ごと)にメンバーシップ プロバイダー アプリケーションを作成します。
  2. この GUID に基づくすべてのアカウントを検索し、それらを適切なアプリケーションの下に配置するスクリプトを作成します。

これは機能しますか?顧客が同じメール アドレスを使用して各トークン/会社のログインを作成することはできますか?

助けてくれてありがとう!

4

1 に答える 1

1

スクリプトを作成する場合

[dbo].[aspnet_Membership_FindUsersByEmail]

、(デフォルトの実装)がすでに「アプリケーションごとに分離」されていることがわかります。(このプロシージャは「ApplicationName」をパラメータとして使用するためです。

したがって、プログラムで

MembershipProvider.ApplicationName

http://msdn.microsoft.com/en-us/library/system.web.security.membershipprovider.applicationname.aspx

そうすれば、やりたいことができるはずです。

上記の手順の署名は次のとおりです。

ALTER PROCEDURE [dbo].[aspnet_Membership_FindUsersByEmail]
    @ApplicationName       nvarchar(256),
    @EmailToMatch          nvarchar(256),
    @PageIndex             int,
    @PageSize              int
AS

リマインダー:

ストアド プロシージャを直接処理することはありません。MembershipProvider の API を使用します。

しかし、ここに簡単なテストがあります。

MembershipProvider mp1 = Membership.Providers["App1"];
mp1.CreateUser (.................. )


MembershipProvider mp2 = Membership.Providers["App2"];
mp2.CreateUser (.................. )  /* use same email */

ここで、構成ファイルで各 MembershipProvider (およびその名前) を定義する必要があると思います。

しかし、ここにMSDNリンクがあります:

http://msdn.microsoft.com/en-us/library/system.web.security.membershipprovidercollection.item.aspx

于 2013-09-30T17:13:49.360 に答える