gpt4 book ai didi

c# - WCF UserNamePasswordValidator 是否需要检查 PrimaryIdentity.IsAuthenticated?

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

目前我有一项服务使用 UserNamePasswordValidator 来验证客户端用户。验证代码如下:

  public override void Validate(String userName, String password)
{
if (userName == null) || (password == null)
throw new FaultException("Username and/or password not specified.");
if (userName != "test") && (password != "tset")
throw new FaultException("Invalid username and/or password.");
}

如您所见,代码在出错时总是会抛出异常。

现在的问题 - 我是否有任何理由检查 ServiceSecurityContext.Current.PrimaryIdentity.IsAuthenticated 在我的 OperationContract 函数中是否为真?例如,

  public interface IMyService
{
[OperationContract]
void myOpContract();
}

public class MyService : IMyService
{
public void myOpContract()
{
// Do I really need this conditional statement?
if (ServiceSecurityContext.Current.PrimaryIdentity.IsAuthenticated)
// Proceed as expected
else
// Fail?
}
}

如有任何帮助,我们将不胜感激。

最佳答案

来自本文中的几条评论 - Silverlight 3: Securing your WCF service with a custom username / password authentication mechanism并且来自各种测试 - if ([...]PrimaryIdentity.IsAuthenticated) 部分不是必需的。在 UserNamePasswordValidator 中抛出错误可以中止安全协商。

然而,代表作者的一个绝妙想法是保留 if ([...]PrimaryIdentity.IsAuthenticated) 条件语句有助于 if 将来新的绑定(bind)(连接类型) ) 添加时没有安全性。

关于c# - WCF UserNamePasswordValidator 是否需要检查 PrimaryIdentity.IsAuthenticated?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3460070/

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