zoukankan      html  css  js  c++  java
  • Profile使用

    Profile 在中文版的MSDN中被称为 配置文件属性,这个功能是在 ASP.NET 2.0 中引入的。

    ASP.NET提供这个功能主要是为了简化与用户相关的个性化信息的读写方式。
    简化主要体现在3个方面:
    1. 自动与某个用户关联,已登录用户或者未登录都支持。
    2. 不需要我们设计用户的个性化信息的保存表结构,只要修改配置文件就够了。
    3. 不需要我们实现数据的加载与保存逻辑,ASP.NET框架替我们实现好了。

    为了使用Profile,我们首先在web.config中定义所需要的用户个性化信息:

    <profile>
        <properties>
            <add name="Address"/>
            <add name="Tel"/>
        </properties>
    </profile>
    

    然后,就可以在页面中使用了:

    为什么会这样呢?
    原因是ASP.NET已经根据web.config为我们创建了一个新类型:

    using System;
    using System.Web.Profile;
    
    public class ProfileCommon : ProfileBase
    {
        public ProfileCommon();
    
        public virtual string Address { get; set; }
        public virtual string Tel { get; set; }
    
        public virtual ProfileCommon GetProfile(string username);
    }
    

    有了这个类型后,当我们访问HttpContext.Profile属性时,ASP.NET会创建一个ProfileCommon的实例。 也正是由于Profile的强类型机制,在使用Profile时才会有智能提示功能。

    如果我们希望为未登录的匿名用户也提供这种支持,需要将配置修改成:

    <profile>
        <properties>
            <add name="Address" allowAnonymous="true" />
            <add name="Tel" allowAnonymous="true"/>
        </properties>
    </profile>
    <anonymousIdentification enabled="true" />
    

    Profile中的每个属性还允许指定类型和默认值,以及序列化方式,因此,扩展性还是比较好的。

    尽管Profile看上去很美,然而,使用Profile的人却很少。
    比如我就不用它,我也没见有人有过它。
    为什么会这样?

    我个人认为:它与MemberShip一样,是个鸡肋。
    通常说来,我们会为用户信息创建一张User表,增加用户信息时,会通过增加字段的方式解决。
    我认为这样集中的数据才会更好,而不是说,有一部分数据由我维护,另一部分数据由ASP.NET维护。

    另一个特例是:我们根本不创建User表,直接使用MemberShip,那么Profile用来保存MemberShip没有信息是有必要的。

    还是给Profile做个总结吧:
    优点:使用简单。
    缺点:不实用。

    引用:http://www.cnblogs.com/fish-li/archive/2012/11/21/2780086.html

  • 相关阅读:
    epoll oneshot
    回望五月
    都知道的copy_from_user
    ixgbe 驱动 为xxx驱动做准备1
    面试问题集锦
    数据治理
    阅读
    hive 数据仓库面试题目集锦
    面试小问题集锦
    Scala学习笔记~尚硅谷学习视频
  • 原文地址:https://www.cnblogs.com/slyzly/p/2780868.html
Copyright © 2011-2022 走看看