gpt4 book ai didi

c# - WCF 中使用 BasicHttpBinding 和 TransportWithMessageCredential 的用户授权

转载 作者:太空宇宙 更新时间:2023-11-03 11:29:18 25 4
gpt4 key购买 nike

我目前有一项服务受 TransportWithMessageCredential 通过 https 保护。这工作太棒了!我现在需要为此服务的某些操作添加一些粒度。

假设我有这个方法 public IEnumerable<Project> GetProjects()现在我需要添加一个额外的方法,将投影限制为当前用户有权访问的项目。

正在使用这样的代码:

var uid = System
.ServiceModel
.OperationContext
.Current
.IncomingMessageProperties
.Security
.ServiceSecurityContext
.PrimaryIdentity;
var returnProjects = context.Projects.Where(p => p.ProjectManager.Equals(uid.Name));

会让我容易受到任何类型的攻击吗?

我认为这应该没问题,因为 WCF 会达到我的习惯 UserNamePasswordValidator首先“验证”用户,然后我上面的代码将“授权”他们只获得他们的项目。是不是我的思路有问题?

最佳答案

不,这是完全正确的想法。这正是我们实现特定于用户的安全性的方式(除了我们使用 FormsAuthentication 来识别用户的小异常(exception))。

在处理每个请求之前,我们总是检查用户,如果请求有任何可疑之处,我们将抛出异常。

关于c# - WCF 中使用 BasicHttpBinding 和 TransportWithMessageCredential 的用户授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8361744/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com