2009-06-23 1 views
1

自分のコンピュータに開発中のASP.NETサイトがあります。それはそれ自身のsqlserverデータベースを持っています。何らかの理由により、メンバーシッププロバイダシステムは、プロジェクトの2つのアプリケーションレコードを作成するようです。メンバーシップシステムは、システム内の各ユーザーのために、アプリケーションレコードごとに1つずつ、2つのレコードを作成しているため、これは私の問題です。なぜこれが起こっているのですか?それをどうやって消しますか?ASP.NETメンバーシップ - 2つのアプリケーションIDレコード

これが問題になる主な理由は、新しいユーザーのmembershipIDを回復するためにユーザー名を使用するため、メンバーはデータストレージ用に作成する他のテーブルに関連付けることができるということです。

ご意見やご感想をお寄せください。あなたはメンバシッププロバイダの「のapplicationName」属性の名前を指定しないとき

おかげ

ダグ

答えて

7

これは通常起こります。これにより、メンバーシッププロバイダはWebサーバーのvrootパスを使用します。

<membership> 
<providers> 
    <clear/> 
    <add name="AspNetSqlMembershipProvider" 
     type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
     connectionStringName="LocalSqlServer" 
     enablePasswordRetrieval="false" 
     enablePasswordReset="true" 
     requiresQuestionAndAnswer="true" 
     requiresUniqueEmail="false" 
     passwordFormat="Hashed" 
     maxInvalidPasswordAttempts="5" 
     minRequiredPasswordLength="7" 
     minRequiredNonalphanumericCharacters="1" 
     passwordAttemptWindow="10" 
     passwordStrengthRegularExpression="" 
     applicationName="/" 
    /> 
</providers> 

ですから、例えば1からアプリケーションを移動した場合、:あなたはそれが指定されていない場合は、applicationName属性のデフォルト値を参照することができ、以下の例で

フォルダを別のフォルダに移動すると、新しいアプリケーションがメンバーシップデータベースに作成されます。

これを解決する方法は、「applicationName」属性に名前を付けることです。 既にメンバーシップデータがある場合は、その属性を既存のアプリケーション名の1つとして指定できます。これは、 "aspnet_Application"テーブルの "ApplicationName"列です。

Always set the "applicationName" property when configuring ASP.NET 2.0 Membership and other Providers

ScottGuは、ここではこれについての良い記事を持っていました

関連する問題