抱歉,我的英语不好。
我有wcf服务项目和asp.net mvc项目 我正在使用ninject wcf客户端扩展来注入像这个例子中的服务
Bind<IService>().ToServiceChannel();
现在我需要为wcf服务添加身份验证和授权。我已实施UserNamePasswordValidator
和IAuthorizationPolicy
。
在所有示例中,使用了服务引用和用户凭据,如下所示:
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;
}
}
我如何添加用户凭据?
答案 0 :(得分:0)
您需要创建一个channelFactory来设置用户凭据:
示例:
var result = new ChannelFactory<IService>("*", new EndpointAddress(serviceAddress));
result.Credentials.UserName.UserName = "Username";
result.Credentials.UserName.Password = "password";