自定义aspnetdb数据库链接

 ASP.NET2.0中引用provider模式后,向membership  roles  prfile成员资格管理组件,就是以这种模式构建起来的,为程序的简化带来了极大的方便。要想灵活充分发挥它们的作用,需要自定义使用它们。今天看了一些这方面的文章,小有收获,把一些实用知识收集如下。

下面简要叙述在ASP.NET 2.0中使用SQL Server 2K/2K5做支持数据库的步骤:

  1. 在Visuaol Studio 2005的命令行环境中执行命令:aspnet_regsql。该工具可以为ASP.NET 2.0在指定的SQL Server上建立或指定一个支持数据库,默认名字为aspnetdb
  2. 接下来需要修改配置文件,可以在通过修改$:WINDOWS/Microsoft.NET/Framework/v2.0.50727/CONFIG/machine.config来实现,但修改machine.config文件并不是一个好的方法,好在ASP.NET 2.0提供了在Web.Config文件中修改的办法。
  3. 打开一个Web应用程序的Web.Config文件,添加如下配置节:
    < connectionStrings >
        
    < remove  name ="LocalSqlServer"   />
        
    < add  name ="LocalSqlServer"  connectionString ="server=(local);trusted_connection=false;user id=sa;pwd=8848;database=aspnetdb"  providerName ="System.Data.SqlClient"   />
    </ connectionStrings >

    首先用remove去掉在machine.config中定义的LocalSqlSever连接配置,那个连接是指向本地安装的Sql Express的;然后再重新添加一个LocalSqlServer数据库连接指向想要设定的Sql Server服务器数据库。
  4. 然后在<system.web>节点中去配置一个默认的使用LocalSqlServer数据连接的Provider,如下:
    < system .web >
        
    < membership  defaultProvider ="SqlMembershipProvider" >
          
    < providers >
            
    < add  connectionStringName ="LocalSqlServer"  name ="SqlMembershipProvider"  type ="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
          
    </ providers >
        
    </ membership >
    </ system.web >


本人认为,可以只更改数据库链接串

<connectionStrings>
    <clear/>
    <add name="LocalSqlServer" connectionString="server=GCL-506CBD461C4/SQLEXPRESS;trusted_connection=false;user id=sa;pwd=123456;database=aspnetdb" providerName="System.Data.SqlClient" />
  </connectionStrings>

第4项可以不用更改,使用machine中原有的即可。使用clear命令清除继承的字符串。试验通过。

表名:aspnet_Applications
说明:保存应用程序信息

字段名
 类型 属性说明
 ApplicationName nvarchar(256)  应用程序名
 LoweredApplicationName nvarchar(256)  小写的应用程序名
ApplicationId
 uniqueidentifier PK应用程序的id, GUID值
 Description nvarchar(256) nullable应用程序的 描述

表名:aspnet_Paths
说明:路径信息

字段名
 类型 属性说明
 ApplicationId uniqueidentifier FK: appnet_Applications.ApplciationId
 应用程序Id
 PathId uniqueidentifier PK 路径Id
 Path nvarchar(256)  路径信息
 LoweredPath
 nvarchar(256) 小写的路径信息

表名:aspnet_Users
说明:用户信息

 字段名 类型 属性 说明
 ApplicationId uniqueidentifier  应用程序Id
 UserId
 uniqueidentifier PK用户Id
 UserName nvarchar(256)  用户名
 LoweredUserName nvarchar(256)  小写的用户名
 MobileAlias nvarchar(16)  移动电话的pin码(未使用)
 IsAnonymous bit  是否为匿名用户
LastActivityDate
 datetime  最后活动日期

表名:aspnet_Membership
说明:成员信息
 字段名 类型 属性 说明
 ApplicationId uniqueidentifier FK: appnet_Applications.ApplciationId
 应用程序Id
 UserId
 uniqueidentifier FK: aspnet_Users.UserID
用户Id
 Password
 nvarchar(128)  密码
 PasswordFormat int 存储密码的格式 
 PasswordSalt nvarchar(128) 密码的Hash值
 MobilePIN nvarchar(16)  手机PIN码
 Email
 nvarchar(256)  电子邮件地址
 LoweredEmail nvarchar(256)  小写的电子邮件地址
 PasswordQuestion nvarchar(256)  遗忘密码问题
 PasswordAnswer nvarchar(128)  遗忘密码答案
 IsApproved bit  
 IsLockedOut bit  是否锁住
 CreateDate datetime
  创建时间
 LastLoginDate datetime  最后登录时间
 LastPasswordChangedDate datetime  最后密码更改时间
 LastLockoutDate datetime  最后一次锁帐号的时间
 FailedPasswordAttemptCount int  密码失败尝试次数
 FailedPasswordAttemptWindowStart datetime  密码失败尝试窗口打开时间
 FailedPasswordAnswerAttemptCount int  遗失密码问题尝试次数
 FailedPasswordAnswerAttemptWindowStart datetime  遗失密码问题输入窗口打开时间
 Comment ntext  备注

表名:aspnet_Roles
说明:角色表
 字段名 类型 属性 说明
ApplicationId
 uniqueidentifier FK: appnet_Applications.ApplciationId
应用程序Id
 RoleId uniqueidentifier PK
 角色Id
 RoleName nvarchar(256)  角色名称
 LoweredRoleName nvarchar(256)  小的角色名称
 Description nvarchar(256) nullable 描述

表名:aspnet_UsersInRoles
说明:用户角色关系表
 字段名  类型 属性
说明
 UserID uniqueidentifier FK: aspnet_Users.UserId
用户ID 
 RoleID uniqueidentifier  FK: aspnet_Roles.RoleId
 角色ID

表名:aspnet_Profile
说明:Profile对象存储表
字段名
类型 属性 说明 
 UserId uniqueidentifier  FK: aspnet_Users.UserId
 用户ID
 PropertyNames ntext  属性名称
 PropertyValuesString ntext  字符串值
 PropertyValuesBinary image  二进制值
LastUpdatedDate
 datetime 最后更新日期 

asp.net 2.0中扩展login控件

asp.net 2.0中,login登陆控件是个不错的选择,但有时需要扩展该控件,比如,在一个OA系统中,有时要选择登陆的用户所在的是集团的哪一个子公司,这样,除了用户名,密码外,还需要有个dropdownlist,设置为该集团的所有子公司名,象这样应该如何实现呢?
      我们可以首先选择login control,并且将其转换为模版列,在其中加上一个dropdownlist,如下:
  
 
<asp:Login ID="Login1" runat="server" OnLoggingIn="Login1_LoggingIn">
            <LayoutTemplate>
                        ….
                        <asp:DropDownList id=”companies” runt=”server” …>
                                 ….
                        </asp:DropDownList>
                        ….
            </LayoutTemplate>

</asp:Login>
  然后在login控件的Authenticate事件中,写入如下代码:

protected void Login1_ Authenticate (object sender, AuthenticateEventArgs e)
{
       string company:

 

 
        DropDownList companies = Login1.FindControl("companies ") as DropDownList;
        if (companies != null)
            company = companies.SelectedValue;

 

 
       …
       //Validate the user..
       e.Authenticated = true;
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值