WCF。设置用户凭据

时间:2015-08-07 20:18:54

标签: c# asp.net wcf ninject ninject-extensions

抱歉,我的英语不好。

我有wcf服务项目和asp.net mvc项目 我正在使用ninject wcf客户端扩展来注入像这个例子中的服务

 Bind<IService>().ToServiceChannel();

现在我需要为wcf服务添加身份验证和授权。我已实施UserNamePasswordValidatorIAuthorizationPolicy

在所有示例中,使用了服务引用和用户凭据,如下所示:

ServiceClient host = new ServiceClient();
host.ClientCredentials.UserName.UserName = "user";
host.ClientCredentials.UserName.Password = "pass";

但我没有创建服务参考。我只有接口。并像这里一样使用它:

public class HomeController : Controller
{
    private readonly IService _service;
    public HomeController(IService service)
    {
        _service = service;    
    }
}

我如何添加用户凭据?

1 个答案:

答案 0 :(得分:0)

您需要创建一个channelFactory来设置用户凭据:

示例:

var result = new ChannelFactory<IService>("*", new EndpointAddress(serviceAddress));
    result.Credentials.UserName.UserName = "Username";
    result.Credentials.UserName.Password = "password";