新手对wcf宿主IIS的安全验证问题

bao22314483 2012-09-04 02:51:16
我刚刚开始学WCF对于安全验证有很大迷惑,找了很多资料都不是太懂,所以发帖问下
问题很简单,首先说明下我的WCF是宿主起IIS的

public class Service1 : IService1
{
[PrincipalPermission(SecurityAction.Demand, Role = "Administrators")]
public string GetData(string ClientIdentity)
{
return ("成功调用");
    
}
}


[ServiceContract]
public interface IService1
{

[OperationContract]
string GetData(string ClientIdentity);

// TODO: 在此添加您的服务操作
}


客户端

ServiceReference1.Service1Client data = new ServiceReference1.Service1Client();
NetworkCredential credential = data.ChannelFactory.Credentials.Windows.ClientCredential;
credential.UserName = "jbye";
credential.Password = "bao.123";
IService1 calculator = data.ChannelFactory.CreateChannel();
MessageBox.Show(calculator.GetData("123"));

我的windows用户的确是在Administrators用户组里面的,但是每次调用都说拒绝访问,是为什么呢,我服务端和客户端的Web.config配置都是默认的,是不是有添加什么东西进去呢,谁知道怎样做,我是新手,所以很多地方不懂
...全文
231 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhanghb0001 2012-09-10
  • 打赏
  • 举报
回复
用的什么binding?
机器人 2012-09-06
  • 打赏
  • 举报
回复
如果你都在一个域里,那么可以利用IIS Windows 认证。

看这个:http://www.cnblogs.com/xuanhun/archive/2011/06/29/2093119.html
机器人 2012-09-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

引用 1 楼 的回复:

如果你使用Windows 安全认证,那么还需要添加服务端证书才行。


不对阿,我看网上源码没有用到证书,不过源码宿主不是IIS,但是代码能运行,也能WINDOWS账号验证的,买证书好贵哦,还有没有其他办法能限制用户访问我的WCF服务的权限呢
[/Quote]

还可以用 soapheader 的用户名密码验证
http://blog.csdn.net/fangxinggood/article/details/6144893
bao22314483 2012-09-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

如果你使用Windows 安全认证,那么还需要添加服务端证书才行。
[/Quote]

不对阿,我看网上源码没有用到证书,不过源码宿主不是IIS,但是代码能运行,也能WINDOWS账号验证的,买证书好贵哦,还有没有其他办法能限制用户访问我的WCF服务的权限呢
机器人 2012-09-04
  • 打赏
  • 举报
回复
如果你使用Windows 安全认证,那么还需要添加服务端证书才行。

12,162

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧