在云中处理WCF消息身份验证的最佳方式(c#)

本文关键字:方式 最佳 身份验证 处理 WCF 消息 | 更新日期: 2023-09-27 17:50:07

我查阅了许多资料,并找到了许多示例,但没有一个真正适合我希望进行项目的情况。我正在编写一堆WCF服务,有些是公开访问的,有些不是(服务器到服务器),这将允许一个完全灵活的云应用程序,确保能够根据需要通过Azure扩展服务。我不确定采用哪种方式进行消息身份验证,因为我希望确保特定用户登录,可以执行不同的任务,并防止其他人运行这些任务。

我所看到的大多数使用角色或ASP。网会员。我有自己的自定义会员资格,用户将使用它登录,我不依赖于标准的会员资格提供程序或活动目录。你的建议是什么?我想只是创建一个令牌是在成功登录时创建的,它存储在一个cookie中,作为一个参数添加到每个方法中,但是通过一些研究,我认为这可能可以在不修改我所有的方法的情况下处理。

你是怎么想的?

在云中处理WCF消息身份验证的最佳方式(c#)

通过使用UserNameAuthentication和编写自定义验证器,您可以轻松实现身份验证,而无需手动将令牌传递到所有函数中-这里有一个相当简单的教程

如果你使用UserNameAuthentication,你将需要使用SSL/HTTPS,这意味着你需要获得一个服务器证书——这对大多数商业应用程序来说是一个好主意。

在服务器端,您可以获得当前用户的身份:
IIdentity wic = OperationContext.Current.ServiceSecurityContext.PrimaryIdentity as IIdentity;

使用基本身份验证,并让web服务对您的会员库进行身份验证。