【问题标题】:Authentication with OpenRasta使用 OpenRasta 进行身份验证
【发布时间】:2010-09-12 16:35:11
【问题描述】:

我正在尝试将 OpenRasta 用于简单的 RESTful 服务。此服务需要使用 http Basic 身份验证或(最好)Digest 来保护。

环顾网络,有数十个网页写着 OpenRasta 有多棒,而且它甚至支持 Digest 身份验证,但我还没有找到一个示例来说明如何启用其中任何一个为我服务。

在我的方法或处理程序上放置 RequiresAuthentication 似乎没有做任何事情。

以前有人真的这样做过吗?或者它只是一个梦想软件?

更新:我放弃了上班,选择了 OpenRasta 的 Scott Littlewoods 分支。他改变了身份验证的工作方式,并使用他的实现,我设法做到了 Basic 和 Digest。

【问题讨论】:

    标签: .net openrasta


    【解决方案1】:

    我整理了一篇小博文和示例应用程序来展示如何使用 OpenRasta 的当前 RTM 启用摘要式身份验证。

    http://scottondotnet.blogspot.com/2010/10/openrasta-digest-authentication.html

    源代码可以在这里找到:http://github.com/scottlittlewood/OpenRastaDigestDemo

    【讨论】:

      【解决方案2】:

      查看 OpenRasta.Security 中的类。您需要在容器中实现并注册一个 IAuthenticationProvider 以便摘要生效。

      如果在执行此操作后仍然无法正常工作,请检查调试日志,并将其副本发送到邮件列表中,那里的人将能够帮助您。

      【讨论】:

      • 在 IoC 中依赖 IAuthenticationProvider 并没有帮助,我的问题一直存在于 OpenRasta 谷歌群组中。至少我在这里得到了一些反馈!
      • 抱歉,我已经一个星期没带笔记本电脑了,也没有像我应该的那样密切关注邮件列表。 [RequiresAuthentication] 属性将确保调用仅对经过身份验证的用户成功(这是通过 IPrincipal 的默认 .net 身份验证)。当您注册身份验证提供程序时,HTTP Digest 处理程序将启动,否则不会。
      • 如何注册容器?在其他地方您指向trac.caffeine-it.com/openrasta/wiki/Doc/…,但这并没有谈论身份验证。我实现了 IAuthenticationProvider,并用 [RequiresAuthentication] 装饰了一个处理程序,所以我确实得到了身份验证提示,但它似乎没有命中我的身份验证类。
      • 身份验证提供程序需要通过 yoru IoC 特定 API 或通过 .Uses.CustomDependency 方法在您的容器中注册。
      【解决方案3】:

      我认为问题在于使用 Cassini(内置于 VS.NET)进行调试。 Cassini 不像 IIS 那样支持身份验证。当我切换到使用 IIS 时,它开始提示我进行身份验证。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-22
        • 2011-10-13
        • 1970-01-01
        • 1970-01-01
        • 2017-04-17
        • 2017-06-13
        • 2017-03-11
        相关资源
        最近更新 更多