gpt4 book ai didi

asp.net - ASP.NET 兼容模式下的 WCF 服务 - 传递用户名/密码的最简单方法是什么

转载 作者:行者123 更新时间:2023-12-02 15:43:01 26 4
gpt4 key购买 nike

我有一个网络服务(WCF 或 ASMX 无关紧要)...我制作了一个控制台应用程序,右键单击,添加了服务引用。到目前为止,还不错。

但是,我终生无法将“安全”证书传递给我的服务。这是我的客户端代码:

var client = new MyClient();

client.ClientCredentials.UserName.UserName = "bob";
client.ClientCredentials.UserName.Password = "123!!";

client.HelloWorld();

client.Close();

但是在服务器上,无论我做什么(打开和关闭 aspnetcompant 模式、wcf 服务、asmx 服务、自定义 http 处理程序等)...我都找不到“bob:123!!”任何地方。不在 header 中,不在 HttpContext.Current.User.Identiy.Name 中,不在 Thread.CurrentPrincipal 中……什么都没有。

我在这里错过了什么?

最佳答案

您是否查看过这篇关于自定义验证器的文章:http://www.leastprivilege.com/FinallyUsernamesOverTransportAuthenticationInWCF.aspx

此外,在我从事这项工作时,对我有帮助的一件事是禁用对 Web 服务器目录的匿名访问。当您未通过身份验证时,HttpContext.Current.User.Identity.Name 始终返回一个空字符串。因此,看起来您的身份验证是正确的,只是无法“找到”用户名,但实际上您是匿名登录的。至少在禁用匿名访问的情况下,您会得到一个异常,并且可以更轻松地找出身份验证方面,这是最难的部分。

关于asp.net - ASP.NET 兼容模式下的 WCF 服务 - 传递用户名/密码的最简单方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/372383/

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