【问题标题】:LightSwitch 2013 HTML authentication without authorizationLightSwitch 2013 未经授权的 HTML 身份验证
【发布时间】:2014-04-02 00:54:37
【问题描述】:

我正在尝试做一些我认为应该非常简单的事情,但 LightSwitch 2013 HTML 让它看起来非常困难。

我想要一个需要 Windows 身份验证的 LightSwitch HTML 客户端和 Web 服务。任何用户都可以。除了“是的,他们通过了身份验证”之外,我不想做任何授权。

当我在我的 LightSwitch 属性中启用 Windows 身份验证时,即使对于“任何用户”也是如此:

似乎 LightSwitch 仍然想要进行授权,所以它想要设置_IntrinsicData 连接字符串并指向一个有效的 ASP.NET 成员数据库。我尝试过以下操作:

  1. 在 LightSwitch 中将身份验证设置为无,然后让 IIS 执行 - 这会导致重复提示并最终在客户端出现 401。
  2. 将角色提供程序配置更改为使用 Windows 而不是 SQL,就像您通常在直接 ASP.NET 中那样 - 这会导致客户端中出现相同的重复 401。
  3. http://msdn.microsoft.com/en-us/library/vstudio/ff851957.aspx 中所述的各种基于代码的权限级别 - 这会导致重复 401 或似乎没有任何作用,具体取决于我设置它的位置。
  4. web.config 完全删除或禁用角色提供程序 - 这会导致 LightSwitch 在下次创建/更新时抱怨角色管理器已禁用。
  5. web.config 中的denyallow 条目混淆,并将身份验证设置为Windows,而应用程序属性设置为匿名;这导致 401。

如果我保持显示的设置并且没有做任何特别的事情,那么当提交创建/更新操作时,LightSwitch 会尝试与不存在的成员数据库对话并最终超时。

如何在无需携带会员数据库的情况下通过一揽子授权获得身份验证?

【问题讨论】:

    标签: visual-studio-lightswitch


    【解决方案1】:

    即使您指定允许任何 Windows 用户,LightSwitch 仍希望拥有成员数据库表。这是因为应用程序仍然有一个管理员用户,并且需要这些表来存储管理员信息。管理员可以添加特定的用户或组,并将他们分配给角色,让他们可以访问其他经过身份验证的用户没有的应用程序部分。换句话说,任何 Windows 用户都可以使用该应用程序,但其中一些用户可能拥有比其他用户更多的权限,为此需要会员数据库。

    【讨论】:

    • 为什么所有这些都需要会员数据库?标准 ASP.NET 没有 - 它可以使用 Windows 组来处理所有这些。
    • 默认情况下,LightSwitch 以这样一种方式配置 Windows 身份验证,以便角色不绑定到 Windows 组。这样做是为了减少对 LOB 应用程序开发人员来说总是很麻烦的域管理需求。您始终可以更改 web.config 以使用 ActiveDirectoryMembershipProvider 和 AuthorizationStoreRoleProvider。但是 LightSwitch 总是需要自己的数据库来存储 RolePermissions 表,以便跟踪角色的应用程序特定权限。
    • 好吧,老实说,感觉有点崩溃,但感谢您提供的额外细节。
    猜你喜欢
    • 2021-07-17
    • 2018-06-13
    • 2018-07-09
    • 2018-10-16
    • 2016-08-15
    • 1970-01-01
    • 1970-01-01
    • 2017-07-17
    相关资源
    最近更新 更多