【问题标题】:ASP.NET Membership profile default valueASP.NET 成员身份配置文件默认值
【发布时间】:2011-06-30 11:07:37
【问题描述】:

MSDN 对这个属性比较模糊。

自定义数据字符串可以设置为 任何字符串值,并使用 customProviderData 属性 添加用于添加的配置元素 配置文件属性。

MSDN 式的说法是自己弄清楚。

从描述中感觉它是纯文本,您只是从 web.config 传递到自定义提供程序。但不是这样的,这个字符串似乎构建了给定属性将持有的数据类型,我想知道具体的格式是什么。

特别是,我有以下属性(还有一些,但我只是举例说明两个)

    [SettingsAllowAnonymous(false)]
    [CustomProviderData("NotificationTypes;nvarchar;255")]
    public string NotificationTypes
    {
        get { return base["NotificationTypes"] as string ?? "Email"; }
        set { base["NotificationTypes"] = value; }
    }

    [SettingsAllowAnonymous(false)]
    [CustomProviderData("IssuesPageSize;int")]
    public int IssuesPageSize
    {
        get { return base["IssuesPageSize"] as int? ?? 10; }
        set { base["IssuesPageSize"] = value; }
    }

这里,自定义数据似乎决定了字段的名称、数据库类型和数据库长度。我想知道这个属性是否可以保持默认值。

那么,我的问题如下:

base[attrib] 可以在 ProfileBase 实现中为空吗?
如果我想设置默认值,我应该只检查0string.Empty 吗?

关键是如果base[attrib] 不能为空,我不需要int? 演员表,我应该只检查0,在这种情况下,检查string.Empty上一个。

也就是说,除非有一种“更快乐”的方式来设置默认值,就像在 web.config 中你只需键入:

<add name="NotificationTypes" type="String" defaultValue="Email" customProviderData="NotificationTypes;nvarchar;255" />

我想我问的是如何添加一个在功能上与上面&lt;add/&gt; 标记中的属性完全相同的属性,但以编程方式。

【问题讨论】:

    标签: c# asp.net membership


    【解决方案1】:

    想出了添加这个:

        static SharedMembershipProfile()
        {
            Properties["IssuesPageSize"].DefaultValue = 10;
            Properties["NotificationTypes"].DefaultValue = "Email";
            Properties["PreferredLocale"].DefaultValue = "en-US";
        }
    

    仍然想知道是否有更好的方法,比如属性,或者更“自动连接”的东西

    【讨论】:

      猜你喜欢
      • 2011-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-20
      • 1970-01-01
      • 2013-09-06
      • 1970-01-01
      相关资源
      最近更新 更多