以下是如何为RIA服务创建自定义自动化的一个很好的示例: RIA Services: How can I create custom authentication?
在我的情况下,silverlight页面将作为HTML内容的一部分显示,并且用户授权已在服务器端实现(不使用ASP.NET成员资格)。需要在silverlight页面上显示授权和非授权用户的不同信息。
如果用户已经在服务器端(在通常的ASP.NET网站上)获得授权,是否有可能在Silverlight端跟踪?
请提供如何操作。
提前谢谢。
答案 0 :(得分:0)
有几种方法:
最简单:如果身份验证导致重新加载页面(因此导致所有Silverlight应用程序),您可以通过<param name="IsAuthenticated" value="<%= IsAuthenticated %>" />
标记向Silverlight应用程序发送“IsAuthenticated”参数值应用的<object>
标记(在加载HTML中),或通过InitParameters
对象的asp:Silverlight
方法,无论您使用哪个;该参数对于发送给应用程序InitParams
事件处理程序的StartupEventArgs
Startup
成员中的SL应用程序可见。
更复杂:创建一个WCF HTTP Web服务(即Silverlight可以看到的服务),其中包含一个返回用户当前身份验证状态的方法。
当然,这只会告诉SL应用程序用户是否经过身份验证,并且无法锁定您发送给应用程序的任何信息 - 换句话说,服务器仍应检查“仅经过身份验证的” “信息仅返回到在经过身份验证的浏览器会话中运行的SL应用程序的请求。 (假设信息与身份验证有关。如果只是一组不同的横幅广告,那么没什么大不了的。)