Kyle Tsuei

导航

无属性Profile不生成Profile.UserName

我们在大多数时候使用Profile都是用来认证和记录个人信息,原来的项目中我也曾在基础结构中使用了ASP.NET Profile功能用来进行验证和承载个人信息。最近下一个项目开始做一些调查工作,结果配置的Profile怎么也出不来UserName,这令我很奇怪,原来问题在于如果配置节点中不指定Profile的属性就不会在认证前后获得用户名等信息。示例如下:
 <profile defaultProvider="MyProfileProvider">
      
<providers>
        
<add name="MyProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="LocalSqlServer"/>
      
</providers>
      
<properties>
        
<add name="Name" allowAnonymous="true" defaultValue="??"/>
      
</properties>
    
</profile>

以上配置后,认证前用户名为ab1ade46-00c9-4182-a03a-b6478daff149(未认证用户);输入用户名密码获得认证登录用户的用户名。

而如果不指定属性节点(<add name="Name" ... />),则认证前后用户名均为空。但ASP.NET还是把用户名存在了别的地方,因为LoginName控件在后者的情况下仍能表示出用户名。

posted on 2009-03-18 21:53  Kyle Tsuei  阅读(403)  评论(0)    收藏  举报