ASP .Net会员资格和会员等级

时间:2012-10-09 18:01:27

标签: asp.net aspnetdb

几个问题:

我在app_data文件夹下创建了一个数据库。反正将数据库与同一文件夹下的EXISTING aspnetdb相关联吗?如果是这样,任何人都可以指导我吗?

如果没有,那么在APP_CODE文件夹下创建我自己的数据库的最佳方法是什么呢?该文件夹也会使用asp .net会员资格?我的意思是我可以检查用户名和角色,在代码中(如果User.IsinRole(“........”)等,并使用项目内的图标打开成员资格页面并添加/修改/删除用户?

由于

3 个答案:

答案 0 :(得分:0)

您可以创建MembershipProvider。代码项目Custom Membership Providers

中提供了一个示例

答案 1 :(得分:0)

您需要做的就是将连接字符串更改为指向两者的相同数据库。当然,您必须将架构从一个复制到另一个,以及您需要的任何数据。

答案 2 :(得分:0)

您可以创建自定义Membership Provider,因为您有自定义数据库,而不是使用aspnet_regsql生成的数据库。

public class CustomMembershipProvider : MembershipProvider
{   
    public override MembershipUser CreateUser(string username, 
       string password, string email, string passwordQuestion, 
       string passwordAnswer, bool isApproved, 
       object providerUserKey, out MembershipCreateStatus status)
    {
        throw new NotImplementedException();
    }

    public override MembershipUser GetUser(string username, bool userIsOnline)
    {
        throw new NotImplementedException();
    }

    public override bool ValidateUser(string username, string password)
    {
        throw new NotImplementedException();
    }

    public override int MinRequiredPasswordLength
    {
        get { throw new NotImplementedException(); }
    }

    public override bool RequiresUniqueEmail
    {
        get { throw new NotImplementedException(); }
    }
}

您注册了您的memberShip提供商

<connectionStrings>
    <add name="ApplicationServices" 
      connectionString="Server=your_server;Database=your_db;
                         Uid=your_user_name;Pwd=your_password;"
      providerName="System.Data.SqlClient" />
</connectionStrings>

<authentication mode="Forms">
  <forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>

<membership defaultProvider="CustomMembershipProvider">
  <providers>
    <clear/>
    <add name="CustomMembershipProvider" 
        type="CustomMembership.Models.CustomMembershipProvider"
        connectionStringName="AppDb"
        enablePasswordRetrieval="false"
        enablePasswordReset="true"
        requiresQuestionAndAnswer="false"
        requiresUniqueEmail="false"
        maxInvalidPasswordAttempts="5"
        minRequiredPasswordLength="6"
        minRequiredNonalphanumericCharacters="0"
        passwordAttemptWindow="10"
        applicationName="/" />
  </providers>