我有一个Silverlight应用程序,它调用我的wcf服务,所以它是一个基础设施。我们使用表单身份验证。我想对我收到的每个呼叫进行身份验证检查,但“AuthenticationService”除外(因为这是对登录进行基本身份验证的方法)所以在用户登录并尝试呼叫其他服务之后我想要这个身份验证检查是否执行,以便只有经过身份验证的用户才能被授予访问权限。有没有最好的方法来实现这个...... ???
在搜索各种博客后,我发现我们可以使用HttpContext.Current .... IsAuthenticated属性来检查用户是否经过身份验证。但我的问题是HttpContext的安全性和有效性如何?我们可以依靠吗?或者我们应该使用OperationContext? (并且是的aspnetcompatability设置为true)。
请建议!!
提前致谢
西
答案 0 :(得分:2)
如果您在ASP.NET运行时(即<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
)托管WCF服务,那么您绝对应该能够依赖ASP.NET的安全系统。
查看我在how to leverage ASP.NET security for ASMX services上给出的另一个问题的答案。只要您将ASP.NET作为服务托管环境,就可以使用相同的方法来保护WCF服务。
答案 1 :(得分:0)
以下是一些可能有用的文章:
http://msdn.microsoft.com/en-us/library/dd560702(VS.95).aspx http://silverlightuk.blogspot.com/2008/03/silverlight-wcf-and-aspnet.html http://smehrozalam.wordpress.com/2009/01/07/securing-silverlight-application-and-wcf-service-using-aspnet-authentication-techniques/
简短的回答是你可以使用asp.net控件进行授权,或者直接使用HttpContext.Current(只要启用了AspNetCompatMode)。