0

Asp.Net/C#在我的应用程序中使用,我正在使用Asp.Net内置的成员资格框架。aspnet_regsql服务的安装已正确安装在我的数据库中。aspnet_users但是该表包含有关用户的基本信息,如何添加有关用户的其他信息。我应该修改表本身还是应该使用另一个表并将其与表链接。aspnet_users效果Membership.ValidateUser(username,password)也很好,但我有一个要求登录是基于用户代码的。我怎样才能实现这一点,是否可以通过内置的会员资格. 任何建议都非常受欢迎。谢谢

4

3 回答 3

1

您可以使用ProfileProvider参考)。

更多信息在这里:http: //msdn.microsoft.com/en-us/library/2y3fs9xs.aspx

在这里:如何分配配置文件值?

于 2012-04-17T09:53:40.060 回答
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>

我可以在代码隐藏中编写这个属性:

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

您可以存储任何您想要的东西,请参阅上面的链接了解更多信息。

于 2012-04-17T09:54:34.793 回答
1

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

有用的链接:

于 2012-04-17T09:56:42.493 回答