0

我有一个客户端/服务器项目,与 WCF 通信(目前是命名管道,但这可以改变 - 但我不能使用 IIS)。此项目与 Active Directory 集成。

该程序旨在通过充当一种代理来授予通常没有权限的用户权限。用户使用客户端“请求”要执行的任务。只要满足某些条件,服务器就会为客户端执行任务。

这些标准之一是允许用户请求此任务。我的 WCF 服务需要一种方法来保证用户的身份,将其与数据库进行比较,然后执行任务或拒绝任务。

我将如何使用 Windows 身份验证来保证 100% 的用户就是他们所说的那个人?

提前致谢,

麦克风

4

2 回答 2

0

命名管道唯一允许的身份验证类型是Windows 身份验证(向下滚动到 netNamedPipeBinding)。例如,您可以声明式地进行模拟...

[OperationBehavior(Impersonation = ImpersonationOption.Required)]
public string GetData(int value)
{
  return string.Format("Hi, {0}, you have entered: {1}",
                           WindowsIdentity.GetCurrent().Name, value);
}

获得身份后,您就知道 Windows 已正确验证了此用户,您可以根据您在数据库中的身份检查该身份。

于 2009-07-23T01:20:17.477 回答
0

您可以创建自定义ServiceAuthorizationManager并在CheckAccessCore中针对您的用户数据库实施验证。

请参阅如何:为服务创建自定义授权管理器

于 2009-07-23T01:40:18.120 回答