- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个由 Windows 服务托管的 WCF REST 休息服务。它使用自定义 UserNamePasswordValidator 身份验证。
我想在验证时获取客户端 ip 地址:
ublic static string GetClientIPAddress()
{
try
{
var context = OperationContext.Current;
var prop = context.IncomingMessageProperties;
var endpoint = prop[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty;
return endpoint.Address;
}
catch (System.Exception exc)
{
Debug.Assert(false,exc.Message);
return string.Empty;
}
}
但它会抛出异常,因为在这种情况下上下文为空。我该如何解决这个问题?请注意,大多数建议的 asp.net 兼容模式不是一个选项,我的服务由 WIndows 服务托管,而不是由 IIS 托管。
谢谢!
最佳答案
嘿,尝试一下应该有效的解决方案。
private string GetClientIp(HttpRequestMessage request)
{
if (request.Properties.ContainsKey("MS_HttpContext"))
{
return ((HttpContextWrapper)request.Properties["MS_HttpContext"]).Request.UserHostAddress;
}
else if (request.Properties.ContainsKey(RemoteEndpointMessageProperty.Name))
{
RemoteEndpointMessageProperty prop;
prop = (RemoteEndpointMessageProperty)this.Request.Properties[RemoteEndpointMessageProperty.Name];
return prop.Address;
}
else
{
return null;
}
}
关于c# - UserNamePasswordValidator 中的客户端 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16235799/
我正在尝试使用用户名/密码设置带有 BasicHttpBinding 和身份验证的 WCF web 服务。我制作了自定义身份验证类。但是,它永远不会被调用(通过调试验证)。这是我的 web.confi
我正在为 WCF 使用 UserNamePasswordValidator。我的代码是相似的。我用数据库。有谁知道如何在此方法中获取有关当前连接上下文的信息。我想记录不成功调用的IP地址 public
我有一个使用 net tcp 绑定(bind)和自定义 UserNamePasswordValidator 的 Web 服务。用户名和密码由客户端在 Credentials.UserName.User
与 this question 相关,我有一个自定义的 UserNamePasswordValidator 登录到我们的内部 API。作为登录的一部分,我可以发现用户在我们系统中的角色。 我想稍后在
我在 .NET 4 上有一个带有自定义 UserNamePasswordValidator 的 WCF 服务,通过 SSL 和消息安全保护。 UserNamePasswordValidator 接收用
我正在使用 UserNamePasswordValidator 类作为 WCF 的 UserName 安全性的一部分。这一切都很好,类的 Validate 函数被调用并正常工作。 那我怎么才能知道在我
我在 wcf 中使用自定义 UserNamePassword Validator 来实现安全性。为此,我创建了自签名证书。在尝试使用 Web 服务时,我收到以下错误“无法为 SSL/TLS 安全通道建
我在互联网上浏览过但没有运气,我正在尝试找到一种合适的方法来在服务端缓存用户名和密码 token ,这样每次连接到服务时我都不必创建数据库连接。 这就是我要实现的目标: public class Se
我有一个由 Windows 服务托管的 WCF REST 休息服务。它使用自定义 UserNamePasswordValidator 身份验证。 我想在验证时获取客户端 ip 地址: ublic st
我有一个 WCF 服务通过我的 web.config 连接了一个 UserNamePasswordValidator,没问题。在我的验证器中,我覆盖了 Validate,检查凭据并在必要时抛出 Fau
根据 http://msdn.microsoft.com/en-us/library/system.identitymodel.selectors.usernamepasswordvalidator.
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 有关您编写的代码问题的问题必须在问题本身中描述具体问题 - 并包含有效代码以重现该问题。请参阅SSCCE.o
我有一个使用自定义 UsernamePasswordValidator 的 WCF 服务。验证器需要访问我的 Entity Framework 上下文。 我想为整个服务调用创建一个 ObjectCon
我有一个带有 netTcp 绑定(bind)(消息 - 用户名)的 WCF 服务。 我实现了我自己的 UserNamePasswordValidator.Validate 方法,在这个方法中我检查了凭
目前我有一项服务使用 UserNamePasswordValidator 来验证客户端用户。验证代码如下: public override void Validate(String userNam
在为每个 WCF 请求调用 UserNamePasswordValidator.Validate(username, password) 之前,我需要运行一些东西。 我已经尝试使用 IDispatch
我的第一个问题是,是否可以将自定义 UserNamePasswordValidor 与 basicHttpBinding 一起使用? 我有一个使用表单例份验证和自定义成员资格提供程序的 asp.net
我们目前正在使用自定义 UserNamePasswordValidator .这允许消费者在 SOAP header 中指定凭据,如下所示: 2013-04-05T16:
我有一个 WCF 服务,我在其中使用自定义 UserNamePasswordValidator 来验证用户。 public override void Validate(string userName
我发现了一个关于使用自定义用户名/密码 ( A simple WCF service with username password authentication: the things they do
我是一名优秀的程序员,十分优秀!