wcf的身份验证问题

5207 2012-06-13 01:49:33
最近遇到wcf的身份验证问题,WCF服务是宿主于IIS中的,之前是使用的基本操作系统的“身份验证”来验证用户。但是现有客户不提供windows账户给我们,所以我们只能使用自定义用户名密码的方式,研究了两天发现效果没有与windows集成的效果好,也许是自己未搞清楚。下面我描述下的疑惑:

1、使用自定义用户密码方式做身份验证的方式主要派生System.IdentityModel.Selectors.UserNamePasswordValidator以实现验证,有无其他方法,因为在实验时发现无法断点调试?

2、因为客户不提供windows账号给我们,所以WCF站点开启了匿名用户验证,这样wcf的元数据就公开了,之前使用基本身份验证的时候外界访问wcf时会要求输入用户密码,这样在不知道用户密码的前提下无法获得元数据。所以我考虑将元数据请求置为false,以使外界无法获取,配置如下:<serviceMetadata httpGetEnabled="false" httpsGetEnabled="false"/>。这样做不知道是否真能实现我的目的 ?

3、安全主要是靠SSL加密,这种方法貌似只保证点到点安全,但是消息加密需要客户端证书,不知道这点我是否理解有误?
...全文
225 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
铜臂阿铁木 2012-06-14
  • 打赏
  • 举报
回复
WCF的ASP.NET兼容
http://technet.microsoft.com/zh-cn/library/ms752234(v=vs.90)

第二点说的是Web.config的管理Scope,每层文件夹都可以有自己的Web.config:继承自webroot的Web.config并且可进行独立设置。
天下如山 2012-06-14
  • 打赏
  • 举报
回复
我也刚学这个 学习学习下。
5207 2012-06-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

http://msdn.microsoft.com/zh-cn/library/gg185927.aspx
[/Quote]
谢谢回复。

看了下,这种方案倒还不错,只是有个问题就一定要是基于互联网的。
5207 2012-06-14
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]

引用 8 楼 的回复:

引用 7 楼 的回复:

WCF的ASP.NET兼容
http://technet.microsoft.com/zh-cn/library/ms752234(v=vs.90)

第二点说的是Web.config的管理Scope,每层文件夹都可以有自己的Web.config:继承自webroot的Web.config并且可进行独立设置。

可以每层文……
[/Quote]

谢谢你这两天的回复,收获不少。asp.net兼容性的安全方式我已经找到例子了,大概清楚了整体的机制。

就此结账。
铜臂阿铁木 2012-06-14
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

引用 7 楼 的回复:

WCF的ASP.NET兼容
http://technet.microsoft.com/zh-cn/library/ms752234(v=vs.90)

第二点说的是Web.config的管理Scope,每层文件夹都可以有自己的Web.config:继承自webroot的Web.config并且可进行独立设置。

可以每层文件家有独立的web.config……
[/Quote]
是的。分为目录和web app两种
5207 2012-06-14
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

WCF的ASP.NET兼容
http://technet.microsoft.com/zh-cn/library/ms752234(v=vs.90)

第二点说的是Web.config的管理Scope,每层文件夹都可以有自己的Web.config:继承自webroot的Web.config并且可进行独立设置。
[/Quote]
可以每层文件家有独立的web.config?那就是可以在同一站点下多个子目录里部署asp.net程序了咯?
5207 2012-06-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

1.不一定要用UserNamePasswordValidator的,不知道你的WCF有没有开启ASP.NET兼容,如果打开了,那么像ASP.NET一样管理身份验证即可。不要学MSDN上的那个例子。即使那个ASP.NET没有打开兼容,那么你可以使用WCF自带的验证和Session,至于UserNamePasswordValidator,那是可用可不用的。
2.即使开启了一个新的身份验证方式,也没……
[/Quote]
谢谢回复。
您提到的第一点通过asp.net兼容方式的身份验证,是否有例子可以给予参考?
至于第二点不是太理解。
铜臂阿铁木 2012-06-13
  • 打赏
  • 举报
回复
1.不一定要用UserNamePasswordValidator的,不知道你的WCF有没有开启ASP.NET兼容,如果打开了,那么像ASP.NET一样管理身份验证即可。不要学MSDN上的那个例子。即使那个ASP.NET没有打开兼容,那么你可以使用WCF自带的验证和Session,至于UserNamePasswordValidator,那是可用可不用的。
2.即使开启了一个新的身份验证方式,也没有必要全局都设置成匿名用户验证,你可以再建立一个文件夹,该文件夹下重新设置验证方式,使用这种自定义用户名密码的时候,访问这个文件夹下的接口来登录,这时候不影响原来的逻辑。web.config下的location标签也能实现这个功能。
3.证书加密,加密用私钥,解密用公钥。
完活儿~
我说的不清楚的地方继续你再问………………

12,166

社区成员

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

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