【问题标题】:WCF Services with Windows Authentication and Varied Clients具有 Windows 身份验证和各种客户端的 WCF 服务
【发布时间】:2012-10-12 03:50:20
【问题描述】:

我正在开始一个项目,它将包含三个层次:Web 前端、移动前端和 WCF 后端。身份验证需要通过 Active Directory 完成,但两个 Web 前端都将使用表单身份验证来授予/拒绝对某些区域的访问权限,并且所有用户控制都将通过 AD 内的组进行处理。这特别适用于我希望能够利用内置 Permission.Demand() 功能的 WCF 端。

我有两个问题。首先,有没有人知道这样做的任何最佳实践示例?特别是关于将凭据(没有密码)传递给 WCF 服务,以便它知道正在访问它的上下文。其次,未来包括创建一个 Android 应用程序(可能还有 iPhone/Windows Phone 版本),所以我需要确保使用的方法可以跨平台使用。

【问题讨论】:

    标签: android asp.net active-directory wcf-security


    【解决方案1】:

    将 PrincipalPermissionMode 设置为 Custom,编写自定义授权策略 (http://msdn.microsoft.com/en-us/library/ms729794.aspx) 并在 Evaluate 方法的实施中执行以下操作:

         evaluationContext.Properties["Principal"]=HttpContext.Current.User;
    

    http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/8f424d4f-2f47-4f85-a6b0-00f7e58871f1/

    【讨论】:

    • 我不完全确定我理解这里的建议,不幸的是,阅读这些链接只会让我更加困惑。 HttpContext.Current.User 如何在 WCF 端设置?这些服务将与 IIS 中的每个站点分开托管,因此它们不会共享配置条目。我可以做一些与检查 FormsTicket 相关的事情(基于“域”属性 - 类似于在两个站点之间共享身份验证并使用相同的加密密钥),但我不确定这对 Android 端如何工作,因为它(大概)不会在应用程序内执行 HTTP cookie。
    猜你喜欢
    • 2012-04-15
    • 1970-01-01
    • 2012-01-03
    • 2018-02-12
    • 1970-01-01
    • 2015-06-13
    • 2012-08-01
    • 2011-11-04
    • 1970-01-01
    相关资源
    最近更新 更多