• sqlprofileProvider用法


    做項目中發現微軟已經為開發人員做好了許多事情,profileProvider就是其中之一,它主要用于當前用戶(已注冊的或匿名用戶)個人的屬性,有人會問這些屬性可以定義在表中,為什么用profile,就是因為profile在不同的系統中可能有不設定值,所以是動態的,為了可以用最小的開發來實現及時性不高但變化相對快的設定而建制的。
    SqlProfileProvider直接將property寫入數據庫或從數據庫中讀出。用它必須有以下几步:
    1. 在web.config中有Profile的配置。
    <system.web>
    <anonymousIdentification enabled ="true "/>
       <profile defaultProvider="sqlprovider1" enabled ="true " automaticSaveEnabled ="true" >
        <providers>
         <clear />
         <add name="sqlprovider1"
        type="System.Web.Profile.SqlProfileProvider"
        connectionStringName="Login"
        applicationName="Tuna"
        description="for SampleApplication" />
        </providers>
       
        <properties>
         <add name ="firstname" allowAnonymous ="true"/>
         <add name ="lastname" allowAnonymous ="true"/>
        </properties>
       </profile>  

    </system.web>

    2. 在需要使用profile的地點用如下語句調用:
    SettingsPropertyValueCollection ppvc = ProfileManager.Provider.GetPropertyValues(HttpContext.Current.Profile.Context, ProfileBase.Properties);
    string firstname = ppvc["firstname"].PropertyValue as string ;
    ppvc["lastname"].PropertyValue = "abc";
    ProfileManager.Provider.SetPropertyValues(HttpContext.Current.Profile.Context, ppvc);

    3. 也可以在代碼中寫入config中沒有的屬性:
                SettingsPropertyValueCollection ppvc = ProfileManager.Provider.GetPropertyValues(HttpContext.Current.Profile.Context, ProfileBase.Properties);

                string firstname = ppvc["firstname"].PropertyValue as string ;
                SettingsAttributeDictionary dictionary1 = new SettingsAttributeDictionary();
                dictionary1.Add ("AllowAnonymous", true);
                SettingsProperty sps = new SettingsProperty("Ext", typeof(string), ProfileManager.Provider, false, "default", SettingsSerializeAs.String, dictionary1, false, true);
                SettingsPropertyValue sp = new SettingsPropertyValue (sps) ;
                ppvc.Add(sp);
     
                ppvc["Ext"].PropertyValue = "9999";

                ProfileManager.Provider.SetPropertyValues(HttpContext.Current.Profile.Context, ppvc);

  • 相关阅读:
    Halcon二维仿射变换实例探究
    redis主从+哨兵实战
    单点安装redis+哨兵
    一个学习技术不错的网站
    reset master 不能乱用呀
    MySQL 5.7基于GTID的主从复制实践
    『浅入深出』MySQL 中事务的实现
    使用二进制包安装mysql
    jenkins+gitlab
    mysql的Innodb存储引擎提一嘴
  • 原文地址:https://www.cnblogs.com/sdikerdong/p/815596.html
Copyright © 2020-2023  润新知