【问题标题】:Profile and applicationName配置文件和应用程序名称
【发布时间】:2009-11-16 20:05:29
【问题描述】:


1) aspnet_Profile 表没有 ApplicationId 列,而 aspnet_Membership 和 aspnet_Roles 表确实定义了 ApplicationID 列,这是有原因的吗?


2) 如果我们为当前用户创建配置文件,然后更改配置文件提供者的 applicationName,则无法再读取同一用户的配置文件。因此,配置文件提供者似乎以某种方式知道该用户的表条目是在更改 applicationName 之前创建的?

但这怎么可能,因为 aspnet_Profile 不包含 ApplicationID 列?


谢谢


编辑:

2) 我看不到如何更改配置文件提供程序的应用程序名称 - 它不是配置文件部分中提供程序条目的属性。它是会员部分中提供者的一个属性,这是有道理的


我能够指定 applicationName 属性,所以我必须假设配置文件提供者确实以某种方式使用它:

   <profile defaultProvider="defaultP">
    <providers>
      <add name="defaultP"
           connectionStringName="connect"
           applicationName="_someName"


【问题讨论】:

    标签: asp.net security profile


    【解决方案1】:

    1) 查看 aspnet 安全系统的数据库表,配置文件记录与用户相关联,而用户与应用程序相关联。由于所有配置文件都与用户相关联,因此配置文件本身不需要明确指定应用程序(这是由用户的应用程序隐含的)。

    2) 我看不到如何更改配置文件提供程序的应用程序名称 - 它不是配置文件部分中提供程序条目的属性。它是成员资格部分中提供者的一个属性,这是有道理的。

    【讨论】:

    • 我的错误。显然它确实存在。 VS 2008 中的 Intellisense 没有将其列为选项,或者我在做白日梦而没有注意到它。顺便说一句,我只能猜测 applicationName 属性在 Profile Provider 上,以防您没有指定 Membership Provider。快速搜索一些 Microsoft 文档后,没有发现关于 Profile Provider 的 applicationName 为何存在或可能与 Membership 的 Provider 设置冲突的信息。
    • 此网页 (msdn.microsoft.com/en-us/library/aa479025.aspx) 提示配置文件提供程序上的 applicationName 属性有助于区分可能相同但在不同“范围”中的用户名(不是 id),因此需要不同个人资料。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多