关于App_Data下的数据库文件Personal.mdf

[复制链接]
查看11 | 回复2 | 2009-10-9 08:28:00 | 显示全部楼层 |阅读模式
在基于VS2005做毕业设计时,很多人问到关于这个数据库的问题。当使用了login控件,MemberShip或是WebPart时,这个数据库会自动产生在App_Data文件夹下。
主要问题有:
1 这个数据库的作用是什么?何时会产生?结构是怎样的?
2 所用到的类如membership,是如何和这个数据库打交道的?
回复

使用道具 举报

千问 | 2009-10-9 08:28:00 | 显示全部楼层
表名: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
最后更新日期
回复

使用道具 举报

千问 | 2009-10-9 08:28:00 | 显示全部楼层
C#.NET中App_Code,App_Data等文件夹的作用;
很长的一篇文章,相信对楼主有用
1.Bin文件夹
Bin文件夹包含应用程序所需的,用于控件、组件或者需要引用的任何其他代码的可部署程序集。该目录中存在的任何.dll文件将自动地链接到应用程序。如果在该文件夹中留有不用的或过期的文件,则可能出现“二义性引用(ambiguousreference)”异常的风险。换句话说,如果两个不同的程序集定义相同的类(相同的命名空间和名称),则ASP.NET运行库不能决定应该使用哪一个程序集,从而抛出一个异常。在开发时,当我们重新命名一个项目或一个程序集的名称时,这是常见的错误。为了避免这种错误,一定不要在该文件夹中保留任何不必要的程序集,或者至少要从配置文件的节中删除如下代码行:

在表1.10所列的所有文件夹中,只有Bin可以被ASP.NET1.x应用程序识别。该文件夹是强制性的。
2.App_Browser文件夹
该可选的文件夹包含.browser文件。.browser文件描述浏览器(不管是移动设备浏览器,还是台式机浏览器)的特征和功能。ASP.NET在安装路径下的ConfigBrowser文件夹中安装了大量.browser文件,这些文件供所有应用程序共享。我们只是把当前应用程序特有的浏览器文件放在App_Browser文件夹下。.browser文件的内容即时动态地进行编译,以便向ASP.NET运行库提供最新的浏览器信息。
让我们简单谈谈拥有一个自定义的.browser文件可能有帮助的场景。设想应用程序使用了一个在某个浏览器下不能有效呈现的控件。在指定的浏览器中显示宿主页面时,可以编写一个.browser文件,迫使ASP.NET使用一个不同的适配器来生成该控件。








假设browserID与ASP.NET识别的标准浏览器之一相匹配,则上文所示的.browser文件指示在指定的浏览器下使用CustomControlAdapter呈现CustomControl。
3.App_Code文件夹
App_Code文件夹正好在Web应用程序根目录下,其存储所有应当作为应用程序的一部分动态编译的类文件。这些类文件自动链接到应用程序,而不需要在页面中添加任何显式指令或声明来创建依赖性。App_Code文件夹中放置的类文件可以包含任何可识别的ASP.NET组件——自定义控件、辅助类、build提供程序、业务类、自定义提供程序、HTTP处理程序等。
注意在开发时,对App_Code文件夹的更改会导致整个应用程序重新编译。对于大型项目,这可能不受欢迎,而且很耗时。为此,鼓励大家将代码进行模块化处理到不同的类库中,按逻辑上相关的类集合进行组织。应用程序专用的辅助类大多应当放置在App_Code文件夹中。
App_Code文件夹中存放的所有类文件应当使用相同的语言。如果类文件使用两种或多种语言编写,则必须创建特定语言的子目录,以包含用每种语言编写的类。一旦根据语言组织这些类文件,就要在web.config文件中为每个子目录添加一个设置:





重要的是,特定语言的子目录应在web.config文件中注册,否则,不管它们属于哪个文件夹,App_Code文件夹下的所有文件将被编译成一个单独的程序集。上述配置脚本描述了这么一种情况,即所有的C#文件都放在App_Code文件夹的根目录下,而把几个VisualBasic.NET类文件移入VBFolder目录中。如果节中提到的目录不存在,则会收到一个编译错误提示。
App_Code根文件夹中的文件被编译成App_Code_xxx.dll程序集,其中xxx是随机生成的字符序列。一个给定子目录中的文件将被编译成一个名为App_SubCode_xxx_yyy.dll的动态创建的程序集,其中xxx指示子目录的名称,而yyy是一个随机字符序列。只有在应用程序根目录中的web.config文件中进行了设置,节才有效。
在App_Code目录或任何其他子目录中放置一个assemblyinfo.cs文件,可以创建一个强命名的程序集。显然,如果该文件夹包含VisualBasic.NET文件,那么将使用assemblyinfo.vb文件。程序集配置文件可以引用一个.snk文件来保存强名称的密钥。
注意给一个程序集设置一个强名称,首先必须获得一个公开/私有密钥对。通过使用强名称(StrongName)工具(sn.exe),可以获得这样一个密钥对。强名称工具是我们可以在.NETFramework的安装路径中发现的SDKbinary之一。密钥对文件通常有一个.snk扩展名。可以将该文件保存到一个应用程序文件夹中,并在assemblyinfo.cs文件中引用它,如下所示:

[assembly:AssemblyKeyFileAttribute(@"yourKeyPair.snk")]
注意,VisualBasic.NET是在包含VisualStudioSolution的目录中寻找密钥文件,而C#编译器则在包含该binary的目录中寻找密钥文件。据此可知,用此属性调整我们使用的路径,或者把密钥文件放在合适的文件夹中。
在随后发生的任何重新生成中,程序集的名称将发生变化。同时,老的AppDomain请求一结束,就删除老的程序集。
App_Code文件夹并非只能包含类文件。特别是,它可以包含并能自动地处理代表数据架构的XSD文件。把一个XSD文件添加到该文件夹中时,编译器将把它解析成一个有类型的DataSet类,并将它添加到应用程序作用域中。在ASP.NET1.x中,这一工作由VisualStudio.NET向导,使用一个命令行实用程序(xsd.exe)完成的。
注意使用web.config文件注册一个组件(例如,一个自定义的服务器控件或一个自定义的HTTP处理程序)时,通常要求指定包含该代码的程序集名称。如果该组件定义在App_Code文件夹中,则应该用什么名称来指示程序集?在这种情况下,只是忽略程序集信息,并规定完整的类名即可。如果没有规定任何程序集,则ASP.NET运行库将试图从任何已装载的程序集中装入该类,包括为App_Code文件夹动态创建的程序集。
4.App_Data文件夹
App_Data文件夹应该包含应用程序的本地数据存储。它通常以文件(诸如MicrosoftAccess或MicrosoftSQLServerExpress数据库、XML文件、文本文件以及应用程序支持的任何其他文件)形式包含数据存储。该文件夹内容不由ASP.NET处理。该文件夹是ASP.NET提供程序存储自身数据的默认位置。
注意默认ASP.NET帐户被授予对文件夹的完全访问权限。如果碰巧要改变ASP.NET帐户,一定要确保新帐户被授予对该文件夹的读/写访问权。
5.App_GlobalResources文件夹
正如其他应用程序一样,ASP.NET应用程序也可以使用资源,而且通常应该使用资源。资源是隔离应用程序用户界面的可局部化部分的一种有效方法。一般而言,资源是与程序相关的不可执行的文本。典型的资源有图像、图标、文本和附属文件,但是任何可序列化的对象也可以被看作资源。应用程序资源存储在应用程序的外部,这样就能在不影响和重新编译应用程序本身的情况下重新编译和替换它们。
ASP.NET应用程序需要有一个主要程序集来保存应用程序默认的或中性的资源。此外,还要部署许多附属程序集,它们中各自包含我们需要支持的某种文化的本地化资源。在ASP.NET1.x中,编译一个程序集内的资源有点麻烦。需要手动地将基于XML的资源文件(那些带.res扩展名的资源)编译成.resources二进制文件。这些文件既可以嵌入到一个.NET可执行文件中,也可以编译成附属程序集。使用资源文件生成器实用程序resgen.exe,将文本和基于XML的资源文件转变为.resource文件。资源文件名称遵循baseName.cultureName.resource命名约定,其中baseName通常是应用程序的名称:
resgen.exeProAspNet20.resxProAspNet20.it.resources
创建.resource文件以后,应当把它嵌入到一个程序集中,甚至可以作为一个资源容器来使用。要把一个资源文件嵌入到一个附属程序集中,可以使用程序集连接器工具(al.exe)。在命令行上,指出程序集所使用的文化(如下面示例中的it,它代表意大利)和名称。
al/out:ProAspNet20.resources.dll/c:it/embed:ProAspNet20.it.resources
在编译附属程序集之后,它们将有相同的名称。将它们部署到不同的子目录中,分别按文化命名。
幸运的是,对于ASP.NET2.0,附属程序集的时代已经一去不复返了。更准确地说,附属程序集仍然存在,但是由于App_GlobalResources保留文件夹,对开发人员来说它们已经成为过去的事情。
该文件夹中的任何定位的.resx文件自动地被编译成附属程序集。.resx文件的名称包含文化信息,以帮助ASP.NET运行库环境的程序集生成。如下文件,resources.resx,resources.it.resx,resources.fr.resx,生成中性程序集以及适合于意大利(Italian)和法国(French)文化的附属程序集。如果没有要求特定文化,则中性程序集是默认的文化资源。
App_GlobalResources文件夹中的资源文件是应用程序的全局资源,因而可以从任何页面中引用它。和ASP.NET1.x相比资源读取结果也极大地简化了:
"/>
可以使用最新的称为Resources的$-表达式以声明的方式绑定全局资源(第5章将详细介绍$-表达式)。该表达式包括两个参数:.resx资源文件的名称(没有扩展名),以及要检索的资源的名称。以编程的方式访问资源,请使用如下代码:
HttpContext.GetGlobalResourceObject(resxFile,MyResName)
这两个参数都是字符串,并且与$-表达式中的参数具有相同的作用。此外,$-表达式Resources的实现在内部使用GetGlobalResourceObject。
6.App_LocalResources文件夹
App_LocalResources文件夹位于包含一些ASP.NET页面的文件夹下的一个子目录。该文件夹可以使用位于目录结构中高一级目录中的页面命名的.resx文件进行填充。假定父文件夹包含test.aspx,则可以在App_LocalResources文件夹中找到一些可用的资源文件如下:test.aspx.resx、test.aspx.it.resx和test.aspx.fr.resx。显然,上述文件中存储的资源仅对test.aspx页面有影响,因而只能在链接的页面中看见它们(可以使用它们)。
如何访问一个页面特有的资源呢?对于编程访问,可使用如下代码:
HttpContext.GetLocalResourceObject("/ProAspNet20/ResPage.aspx",
"PageResource1.Title")
第1个参数指出页面虚拟路径;第2个参数是资源名称。对于声明式访问,使用meta.:ResourceKey属性。例如,

该声明将一个惟一的资源键与特定按钮实例关联。局部文件.resx包含prefix.name形式的条目,其中prefix是资源键,而name是绑定控件上的属性名。为了赋予按钮一个本地化标题(Text属性),只要在资源文件中创建一个ButtonResource1.Text条目即可。
局部和全局资源文件夹中存在的资源文件都被编译,以创建附属程序集的类。最后的结果是开发人员创建.resx文件,并测试该页面。而ASP.NET编译机制会完成其余工作。
7.App_Themes文件夹
App_Themes文件夹为ASP.NET控件定义主题。主题包含在App_Themes文件夹下的一个文件夹。根据定义,一个主题是一组带有样式信息的文件。主题文件夹中的文件内容被编译,以生成一个类,而该类被页面调用以编程的方式设置主题化控件的样式。
App_Themes文件夹列出应用程序的本地主题。应用程序还可以继承如下文件夹中定义的全局主题:
%WINDOWS%Microsoft.NETFramework[version]ASP.NETClientFilesThemes
从编译的角度看,全局主题和局部主题没有区别。如果一个给定名称的主题,既存在应用程序的本地主题,又存在服务器机器的全局主题,则本地主题优先适用。
8.App_WebReferences文件夹
在VisualStudio.NET2003中,一个需要访问Web服务的ASP.NET应用程序,将通过“添加Web引用”对话框获得相应的.wsdl文件。Web服务的WSDL(WebServiceDescriptionLanguage)文档,对于从页面使用Web服务是不够的。ASP.NET页面最终是一个托管类,并且需要与另一个托管类通信。因此,Web服务被一个代理类所包装。该代理类是由VisualStudio使用命令行工具wsdl.exe的服务创建的。该代理类尽量包含与Web服务商的Web方法一样多的方法,并且它结合了Web服务的公共接口定义的任何自定义的数据类型。
这个操作不需要开发人员付出很大的代价。然而,开发人员显然要依赖于VisualStudio来生成代理类。如果能够直接把.wsdl文件放在应用程序的目录树的某个地方,并让ASP.NET处理其余的任务,这样不是更容易、更简单吗?这正好是App_WebReferences文件夹要做的事情。
它识别那些用来描述所绑定的Web服务的.wsdl文件,并生成运行时代理类,以便ASP.NET页面能够以类型安全的方式放置对Web服务的调用。App_WebReferences文件夹可以包含子文件夹。子文件夹的名称驱动最后所得到的代理类的命名空间,而WSDL文件定义类名。例如,samples.wsdl文件和ProsAspNet20子文件夹将创建一个称为ProAspNet20.Samples的代理类。该动态创建的程序集称为App_WebReferences.xxx.dll,其中xxx是一个随机的字符序列。
文件夹名称
文件类型
注释

Bin
.dll
包含应用程序所需的任何预生成的程序集

App_Browsers
.browser
包含应用程序特有的浏览器定义文件,ASP.NET用它来识别各浏览器及确定它们的功能

App_Code
.cs、.vb、.xsd、自定义的文件类型
包含作为应用程序的一部分编译的类的源文件。当页面被请求时,ASP.NET编译该文件夹中的代码。该文件夹中的代码在应用程序中自动地被引用

App_Data
.mdb、.mdf、.xml
包含MicrosoftOfficeAccess和SQLExpress文件以及XML文件或其他数据存储

App_GlobalResources
.resx
包含在本地化应用程序中以编程方式使用的资源文件

App_LocalResources
.resx
包含页面范围的资源文件

App_Themes
.skin、.CSS、.xsl、附属文件
包含一组定义ASP.NET页面和控件外观的文件

App_WebReferences
.wsdl
包含用以生成代理类的WSDL文件,以及与在应用程序中使用Web服务有关的其他文件
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行