【问题标题】:Storing list of security questions in a table in the database - need access as anonymous?在数据库的表中存储安全问题列表 - 需要匿名访问?
【发布时间】:2013-03-27 20:29:12
【问题描述】:

我有一个使用表单身份验证的项目。当用户注册时,他们需要使用他们的帐户设置一个安全问题。我想将安全问题列表存储在数据库中,以便将来的管理员可以控制此列表...添加问题,退出问题等...管理部分工作正常,但受到保护,这意味着我的业务层仅限于经过身份验证的用户,使用 Principal Permission 属性等。

问题在于,在实际的注册表单上,用户是匿名的。我不知道如何允许匿名用户检索访问此问题列表。

【问题讨论】:

  • 您的业务层需要允许匿名访问在注册过程中完成的任何事情。或者为这些用户创建一个备用路径(并行数据层)。
  • 我想我将使用“仅针对这些用户的并行数据层”。如何将评论标记为已接受的答案?
  • 您不能接受评论作为答案。我会给它一个答案,然后你就可以接受了。

标签: asp.net sql-server forms-authentication


【解决方案1】:

您的业务层需要允许匿名访问在注册过程中完成的任何事情。或者为这些用户创建一个备用路径(并行数据层)。

第二种方法的危险是你最终可能会重复代码,这对维护不利。

【讨论】:

  • 使用选项 2,并行数据层。只有未经授权的用户需要执行的功能才能从该层访问。存储库是问题所在,我相信我可以从我的主存储库继承一个“未经身份验证”的存储库,它只访问我需要的东西。
  • 我正在使用有界上下文,所以这将是另一个上下文,受访问它的未经授权的性质的约束。
【解决方案2】:

如果我正确理解您的设置,请执行以下操作:

  1. 将您的 PrincipalPermission 属性从类移动到“仅限管理员”的特定方法。

  2. 创建一个新方法,即Retrieve,不带任何PrincipalPermission 属性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-13
    相关资源
    最近更新 更多