WCF Windows身份验证silverlight登录屏幕

时间:2012-03-27 12:55:25

标签: c# .net wcf silverlight web-services

我的配置中具有给定安全性的WCF服务:

<security mode="Transport">
   <transport clientCredentialType="Windows" />
</security>

我使用Silverlight通过basicHttpBinding连接到我的WCF服务。我想要的是,当我的silverlight应用程序启动时,他们输入他们的Windows登录名/密码(这是一个内联网应用程序)。

在Silverlight中,我可以在拨打任何电话之前设置我的用户名和密码。但是,如果我输入了错误的密码或用户名,我会收到错误(我相信http 500)。

ServiceManager.exporterClient.ClientCredentials.UserName.UserName = "myUserName";
ServiceManager.exporterClient.ClientCredentials.UserName.Password = "myPassword";

在Silverlight中创建一个登录屏幕很简单,但是如何调用我的WCF服务上的函数来询问这个给定的用户名和密码是否有效,如果它只是返回并且因为Windows凭据无效而无法启动因此无法拨打该服务?

2 个答案:

答案 0 :(得分:0)

我一直在基于Silverlight PRISM的应用程序中实现集成身份验证,我发现Mike Taulty的各种帖子非常宝贵。

这是他博客上的搜索结果,他有6个博客条目,非常值得阅读/观看

http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/search.aspx?q=RIA+Services

答案 1 :(得分:0)

首先,Silverlight与Win Auth没有任何关系。它由浏览器管理,因为它使用Kerberos方法,您的凭据将转换为令牌。将WCF服务设置为WinAuth,浏览器要求提供Windows凭据,并在客户端和服务器端的Active Directory上自动检查此用户,因为您的凭据将作为Kerberos令牌传递给作为附加到您的呼叫的服务器。此处还有一个问题是在浏览器中将您的网站设置为受信任。通过使用您的计算机当前用户凭据,这可以使您的WinAuth无需提示屏幕。

此致 衬线

相关问题