【问题标题】:How do I get the requested url from my MembershipProvider class?如何从 MembershipProvider 类中获取请求的 url?
【发布时间】:2013-03-28 17:59:19
【问题描述】:

我目前正在尝试实现 MembershipProvider 类,但我的用户存储库对于我在网上找到的大多数示例并不典型。我们不需要检索用户,而是简单地根据请求 URL 的身份验证服务器检查用户的身份:

  • 用户尝试“POST”到ws.example.com/jobA
  • 属性通过身份验证服务器验证用户,以查看他们是否有权访问此操作/url
  • 拒绝或接受请求

其他几篇文章为我指明了实现自定义会员提供程序的方向。我想它的方式,为了使这项工作,我需要能够看到请求的 URL 是什么,并且能够查看他们的 cookie。在过滤器中,我可以访问 HttpRequestMessage。在这种情况下,我如何获得我需要的信息??

【问题讨论】:

  • 你试过HttpContext.Current.Request.Url吗?
  • 您的问题似乎与授权有关,而会员资格涉及身份验证(谁)。您可能应该在 AuthorizeAttribute 中处理授权问题。
  • 这取决于你如何看待它。这是一个令牌系统,但令牌是在每个唯一请求、每个 url 上发布的。因此,在第一次身份验证时会发生什么,向用户发出一个刷新令牌,用于后续请求。每次唯一调用都会发布资源授权。
  • @abatishchev,不幸的是,这并没有真正起作用。如果用户在进行身份验证之前打开一个页面,他们会被转发到登录页面,并且登录页面会调用不同的操作,因此此时 Uri 与最初请求的 uri 不同。我要看看我是否可以使用重定向参数来保存它。

标签: c# .net asp.net-mvc-4 asp.net-membership


【解决方案1】:

[尽管此线程不是专门关于 SharePoint 成员资格提供程序的,但我将把此解决方案留在这里,因为我在其他任何地方都找不到它,并且在 Google 上寻找解决方案时一直被重定向到此线程。我希望它可以帮助某人]

对于 SharePoint 成员资格提供程序,我们有安全令牌服务,它是一项 WCF 服务。在这种情况下,System.Web.HttpContext.Current 始终为 null,但您可以使用此属性获取实际的请求 URL:

 System.ServiceModel.OperationContext.Current.RequestContext

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-21
    • 2020-03-22
    • 2012-09-16
    • 1970-01-01
    • 2012-03-12
    相关资源
    最近更新 更多