日期:2014-05-19  浏览次数:20397 次

关于PetShop4.0登录的一个问题
这是PetShop   4.0   PetShopProfileProvider.cs里面的一段代码
public   override   void   Initialize(string   name,   NameValueCollection   config)   {

if(config   ==   null)
throw   new   ArgumentNullException( "config ");  
   
if(string.IsNullOrEmpty(config[ "description "]))   {
config.Remove( "description ");
config.Add( "description ",   "Pet   Shop   Custom   Profile   Provider ");
}

if(string.IsNullOrEmpty(name))
name   =   "PetShopProfileProvider ";

if(config[ "applicationName "]   !=   null   &&   !string.IsNullOrEmpty(config[ "applicationName "].Trim()))
applicationName   =   config[ "applicationName "];  

base.Initialize(name,   config);

}

我想问我在登录时:     public   override   void   Initialize(string   name,   NameValueCollection   config)   这句当中的:name和config是那里传过来的呀。为什么name的值是ShoppingCartProvider还有NameValueCollection这个类干嘛用的,谢谢了


------解决方案--------------------
自定义的ProfileProvider都是按照微软的ProfileProvider规定的‘格式’来写,具体的调用是asp.net来自动完成
可以参考一下微软的源码:
http://weblogs.asp.net/scottgu/archive/2006/04/13/442772.aspx
------解决方案--------------------
msdn上关于provider的说明
http://msdn2.microsoft.com/en-us/library/aa478948.aspx
------解决方案--------------------
ASP.NET 2.0 配置文件

在 ASP.NET 2.0 中,可跨越多个 Web 应用程序,将用户信息存储到一个名为 Profile 的新服务中。.NET Pet Shop 4 的配置文件实现存储并检索用户的购物车、购物清单和帐户信息。这里的关键的一点是,很多用户会发现,假如为用户会话信息提供一个事务处理、集群安全的存储,这几乎可以完全替换他们对会话对象的使用。默认情况下,配置文件服务将数据序列化为一个 BLOB,存储在数据库中。但是,通过实现您自己的配置文件服务序列化服务可以获得更高的性能。对于 Pet Shop 4,创建了一个配置文件服务的自定义实现来降低序列化开销。

运行情况

• 配置配置文件提供程序。

清单 6. 配置文件提供程序配置

<profile automaticSaveEnabled= "false "
defaultProvider= "ShoppingCartProvider ">
<providers>
<add name= "ShoppingCartProvider "
connectionStringName= "SQLProfileConnString "
type= "PetShop.Profile.PetShopProfileProvider "
applicationName= ".NET Pet Shop 4.0 "/>
<add name= "WishListProvider "
connectionStringName= "SQLProfileConnString "
type= "PetShop.Profile.PetShopProfileProvider "
applicationName= ".NET Pet Shop 4.0 "/>
<add name= "AccountInfoProvider "
connectionStringName= "SQLProfileConnString "
type= "PetShop.Profile.PetShopProfileProvider "
applicationName= ".NET Pet Shop 4.0 "/>
</providers>
<properties>
<add name= "ShoppingCart " type= "PetShop.BLL.Cart "
allowAnonymous= "true " provider= "ShoppingCartProvider "/>
<add name= "WishList " type= "PetShop.BLL.Cart "
allowAnonymous= "true "
provider= "WishListProvider "/>
<add name= "AccountInfo " type= "PetShop.Model.AddressInfo "
allowAnonymous= "false " provider= "AccountInfoProvider "/>
</properties>
</profile>