Membership之Profile

2024-03-06 12:48
文章标签 membership profile

本文主要是介绍Membership之Profile,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

    ASP.NET 使用 ProfileBase 类创建用于用户配置文件的类。在启动启用了用户配置文件的应用程序时,ASP.NET 会创建一个类型为 ProfileCommon 的新类,该类从 ProfileBase 类继承。强类型访问器被添加到profile配置节中为每个属性定义的 ProfileCommon 类中。ProfileCommon 类的强类型访问器调用 ProfileBase 基类的GetPropertyValue 和SetPropertyValue方法,分别用于配置文件属性值的检索和设置。ProfileCommon 类的一个实例被设置为 ASP.NET 应用程序的Profile属性的值。
    呵呵,上面的简介从MSDN拷贝过来的。现在进入正题,大家在使用Profile的时候是不是有些郁闷的地方?比方说不能在BLL类库工程中使用ProfileCommon,这样就不可避免的在页面层中写些ProfileCommon的操作,我觉得这样操作实在太麻烦了,在查找了相关资料的时候最后还是搞定了,可以完全在后台类库工程中使用ProfileCommon的方法,废话完毕(已经知道的就别看拉,呵呵)。
    首先我自己创建了一个EclProfileCommon的类,此类继承于ProfileBase类,下面是此类的代码

using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
using System.Web.Profile;

namespace ecl.Common.Comm
{
    public class EclProfileCommon : ProfileBase
    {
        [SettingsAllowAnonymous(true)]
        [ProfileProvider("SqlProfileProvider")]
        public string EnglishName
        {
            get { return base["EnglishName"].ToString(); }
            set { base["EnglishName"] = value; }
        }

        [SettingsAllowAnonymous(true)]
        [ProfileProvider("SqlProfileProvider")]
        public string ChineseName
        {
            get { return base["ChineseName"].ToString(); }
            set { base["ChineseName"] = value; }
        }

        [SettingsAllowAnonymous(true)]
        [ProfileProvider("SqlProfileProvider")]
        public string Telephone
        {
            get { return base["Telephone"].ToString(); }
            set { base["Telephone"] = value; }
        }

        [SettingsAllowAnonymous(true)]
        [ProfileProvider("SqlProfileProvider")]
        public string CustomSex
        {
            get { return base["CustomSex"].ToString(); }
            set { base["CustomSex"] = value; }
        }

        [SettingsAllowAnonymous(true)]
        [ProfileProvider("SqlProfileProvider")]
        public string Country
        {
            get { return base["Country"].ToString(); }
            set { base["Country"] = value; }
        }
    }
}
第一步搞定:现在开始配置下web.config
  <membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="20">
   <providers>
    <remove name="AspNetSqlProvider" />
    <add name="SqlProvider"
      type="System.Web.Security.SqlMembershipProvider"
      connectionStringName="SqlServices"
      enablePasswordRetrieval="false"
          enablePasswordReset="true"
          requiresUniqueEmail="true"
          requiresQuestionAndAnswer="true"
          minRequiredPasswordLength="4"
          minRequiredNonalphanumericCharacters="0"
      passwordFormat="Hashed"
          maxInvalidPasswordAttempts="100"
        applicationName="/" />
   </providers>
  </membership>
  <profile enabled="true" defaultProvider="SqlProfileProvider" inherits="ecl.Common.Comm.EclProfileCommon">
   <providers>
    <clear/>
    <add name="SqlProfileProvider" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="SqlServices" applicationName="/"/>
   </providers>
   <!--<properties>
    <add name="EnglishName" type="string" />
    <add name="ChineseName" type="string" />
    <add name="CustomSex" type="string" />
    <add name="Telephone" type="string" />
    <add name="Country" type="string"/>
   </properties>-->
  </profile>
大家注意:<profile enabled="true" defaultProvider="SqlProfileProvider" inherits="ecl.Common.Comm.EclProfileCommon">
中的我配置了inherits="ecl.Common.Comm.EclProfileCommon"这句话的意思是让net生成的ProfileCommon类继承此类这个很关键哦,呵呵
接下来看我在BLL里的调用吧:

        /** <summary>
        /// 新增用户信息
        /// </summary>
        /// <param name="obj">用户实体</param>
        public void AddMember(Account obj)
        {
            if (obj == null)
                throw new NullReferenceException("参数不可以为 Null !");

            MembershipCreateStatus status;

            Membership.CreateUser(obj.NewUserName, obj.Password, obj.Email, obj.PasswordQuestion, obj.PasswordAnswer, obj.IsApproved, out status);

            if (status != MembershipCreateStatus.Success)
                throw new ApplicationException(status.ToString());

            MembershipUser mu = Membership.GetUser(obj.NewUserName);

            mu.Comment = obj.Comment;

            Membership.UpdateUser(mu);

            EclProfileCommon p = (EclProfileCommon)ProfileBase.Create(mu.UserName);
            p.ChineseName = obj.ChineseName;
            p.EnglishName = obj.EnglishName;
            p.CustomSex = obj.Sex;
            p.Telephone = obj.Telephone;
            p.Save();
        }

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/szg3827/archive/2009/07/01/4311545.aspx

这篇关于Membership之Profile的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/780114

相关文章

BLE Profile(GATT与GAP)

一. 引言 现在低功耗蓝牙(BLE)连接都是建立在 GATT (Generic Attribute Profile) 协议之上,GATT 是一个在蓝牙连接之上的发送和接收很短的数据段的通用规范,这些很短的数据段被称为属性(Attribute)。 二. GAP 详细介绍GATT之前,需要了解GAP(Generic Access Profile),它在用来控制设备连接和广播。GAP使你的设备被其

TensorFlow程序分析(profile)实战

导入必要的包 import osimport tempfileimport tensorflow as tffrom tensorflow.examples.tutorials.mnist import input_data 建立模型 batch_size = 100# placeholderinputs = tf.placeholder(tf.float32, [batch_size

浅析linux下的/etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc文件

浅析linux下的/etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc文件 /etc/profile:此文件为 系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.  并从/etc/profile.d目录的配置文件中搜集shell的设置.  /etc/bashrc:为每一个运行bash shell的用户执行此文件.当bas

etc/profile和/etc/environment的比较

先将export LANG=zh_CN加入/etc/profile ,退出系统重新登录,登录提示显示英文。 将/etc/profile 中的export LANG=zh_CN删除,将LNAG=zh_CN加入/etc/environment,退出系统重新登录,登录提示显示中文。 用户环境建立的过程中总是先执行/etc/profile然后在读取/etc/environment。为什么

/etc/profile和 . profile 文件

两个重要的profile文件 在UNIX/Xenix系统中有两个对用户而言必不可少的文件——etc目录下的profile文件和 用户主目录($HOME)下的.profile文件。前者是系统文件,对系统下全体用户起作用,后者是 用户自己的"私人"文件。 这两个文件的功能类似于DOS系统下的Autoexec.bat文件,不同之处在于Autoexec.bat文 件可以为空,而这两个

Ubuntu配置文件/etc/profile说明

对于/etc/profile这个文件,是系统启动是要自动执行的文件,任何一个用户登录系统都会执行这个文件。这个文件里面的配置,是全局配置。所以,如果你需要让你的变量让所有的用户都能使用的话,那么可以考虑在此配置文件里面添加。比如JAVA_HOME变量的配置。但是,尽量的,我们不要去修改这个配置文件,因为这个是系统的配置文件。我们尽量的修改我们自己独立配置文件。在可能的时候,或者重新配置的时候

Linux中全局变量配置,/etc/profile.d还是/etc/profile

全局环境变量可以放在 /etc/profile 或 /etc/profile.d/ 中,但两者的使用方式和目的有所不同: /etc/profile 作用: /etc/profile 是一个系统范围的启动脚本,在用户登录时执行。它主要用于设置全局环境变量和配置,适用于所有用户。 适用情况: 当你需要在所有用户登录时设置全局环境变量或其他全局配置时,可以将这些设置放在 /etc/profile

androidStudio3.1.3更新工具栏舍弃掉了monitor用Profile替代

最近更新了androidStuido3.1.3,当我想查看我的应用内存使用情况时发现monitor找不到了,通过百度各种尝试方案,最终感觉最可靠谱的方案如下   androidStuido3.1.3系列用Profile替代了monitor使用方法如下 1、运行应用时点击如下图片所示的图片   2、如下图不要犹豫点OK 3、此刻在底部就出现了Profile任务栏了如图

Bluetooth: gatt profile

Gatt 主要是描述了attribute的排列方式; Attribute caching 这个机制允许client只搜索一次server即可,当重连后不需要再搜索直接使用之前的。如果server的服务发生了变化,需要通过 service change indication 告诉client;client也可通过读取 server端 data hash characteristic, 判断

MySQL SQL性能分析 show profile

MySQL show profile 和 show profiles 命令用于展示SQL语句执行过程中的资源使用情况,包括CPU的使用,CPU上下文切换,IO等待,内存使用等,这个命令对于分析某个SQL的性能瓶颈非常有帮助,借助于show profile的输出信息,能让我们知道一个SQL在哪个阶段耗时最长,消耗资源最多,从而为SQL优化,提高SQL性能提供重要的依据。 原文地址: http