• 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);

  • 相关阅读:
    最方便建立进程池,线程池的方法
    python并发编程之多线程
    Cpython解释器支持的进程与线程
    进程与线程理论基础
    爬虫关于高性能方面
    Python中 and,or 的计算规则
    存储库之——MongoDB
    解析库之——beautifulsoup
    破解极验滑动验证码
    爬取拉勾网示例
  • 原文地址:https://www.cnblogs.com/sdikerdong/p/815596.html
Copyright © 2020-2023  润新知