Asp.Net/C#
アプリケーションで使用していAsp.Net
ます。組み込みのメンバーシップ フレームワークを使用しaspnet_regsql
ています。サービスのインストールはデータベースに適切にインストールされています。aspnet_users
ただし、テーブルにはユーザーに関する基本情報が含まれています。ユーザーに関する追加情報を追加するにはどうすればよいですか。テーブル自体を変更するか、別のテーブルを使用してテーブルにリンクする必要があります。また、aspnet_users
うまくMembership.ValidateUser(username,password)
機能しますが、ログインがユーザーコードに基づいているという要件があります。これを達成するにはどうすればよいですか?組み込みのメンバーシップで可能ですか? . どんな提案でも大歓迎です。ありがとう
3 に答える
から継承することでカスタムメンバーシッププロバイダーを作成できますSystem.Web.Security.MembershipProvider
。このようにして、必要な追加機能を実装できます。次に、ユーザーの詳細を独自のテーブル構造などに保存できます。次に、web.configをカスタムプロバイダーにポイントして使用します。
便利なリンク:
ProfileProvider
( ref )を使用できます。
詳細はこちら: http://msdn.microsoft.com/en-us/library/2y3fs9xs.aspx
そしてここ:プロファイル値を割り当てる方法?
Profile-Provider
代わりにASP.NETを使用してください。
http://www.4guysfromrolla.com/articles/101106-1.aspx
バイナリ(画像)であっても、あらゆる種類の追加情報を保存できます。SqlProfileProvide
現在のアプリケーションで自分自身を使用して、ユーザー自身が自分の開始ページを選択できるようにしました。
そのため、これをに追加する必要がありましたweb.config
:
<profile defaultProvider="AspNetSqlProfileProvider">
<providers>
<clear/>
<add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="RM2ConnectionString" applicationName="/ERP"/>
</providers>
<properties>
<add name="Startpage"/>
</properties>
</profile>
そして、コードビハインドでこのプロパティを書くことができます:
if(User.Identity.IsAuthenticated)
{
HttpContext.Current.Profile.SetPropertyValue("Startpage", startPage); //startPage is a String
HttpContext.Current.Profile.Save();
}
次のように読みます。
if(User.Identity.IsAuthenticated)
{
Dim user = Membership.GetUser();
Dim startPage = HttpContext.Current.Profile.GetPropertyValue("Startpage") as String;
}
必要なものは何でも保存できます。詳細については、上記のリンクを参照してください。