在Asp.Net中使用自定义成员身份

时间:2012-04-17 09:48:22

标签: c# asp.net asp.net-membership

我在我的应用程序中使用Asp.Net/C#,我正在使用Asp.Net内置成员资格框架。aspnet_regsql服务的安装已正确安装在我的数据库中。{{1然而,表包含有关用户的基本信息,如何添加有关用户的其他信息。我应该修改表本身,还是应该使用另一个表并将其与aspnet_users表链接。同时{{1}运行良好,但我有一个要求,登录基于用户代码。如何实现这一点,是否可以使用内置的成员资格。 任何建议都是最受欢迎的。 感谢

3 个答案:

答案 0 :(得分:1)

您可以使用ProfileProviderref)。

此处有更多信息:http://msdn.microsoft.com/en-us/library/2y3fs9xs.aspx

在这里:How to assign Profile values?

答案 1 :(得分:1)

改为使用ASP.NET Profile-Provider

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>

我可以在codebehind中编写这个属性:

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;
}

您可以存储您想要的任何内容,请参阅上面的链接以获取更多信息。

答案 2 :(得分:1)

您可以通过继承System.Web.Security.MembershipProvider来创建自定义成员资格提供程序 - 这样您就可以实现所需的任何其他功能。然后,您可以将用户详细信息存储在您自己的表结构中。然后,您可以将web.config指向您的自定义提供程序以使用它。

有用的链接: