Silverlight设计问题

时间:2010-07-27 15:37:43

标签: silverlight authentication

我将开发一个工作应用程序,我正在尝试决定是使用Silverlight Business App还是Asp.Net Web App。我的经理担心如果我使用身份验证将整个应用程序创建为Silverlight应用程序,性能和下载时间。在过去的一周里,我一直在玩一些教程,试图了解我的情况,并提出了一个设计问题,我需要问那些比我更有经验的人。

是否可以使用Asp.Net应用程序并在其中一个页面中嵌入一个silverlight应用程序,该页面将在配置了角色授权的文件夹中使用?如果是这样,是否有可能从客户端silverlight应用程序获取用户凭据而不通过initParams传递它们。

据我所知,我可以将身份验证设置为“useCookies”,因此我认为我可以在客户端获取cookie,并希望获得一个属性来验证用户是否经过身份验证。

另外,这会是一种危险的做法吗?感谢您的任何建议和指导。

2 个答案:

答案 0 :(得分:2)

您可以采取一些方法。虽然我知道您不希望在init参数中公开凭证,但您可以为凭证生成“票证”(基于声明的身份验证),并在init参数中包含票证(例如,GUID)。当Silverlight应用程序启动时,它将使用票证,可能通过安全的Web服务调用验证它,并且票证将不再有效,因此即使有人欺骗它或查看源,也无法使用它。

很大程度上取决于您的架构。例如,如果您使用基于角色的身份验证,并且大多数业务逻辑和/或决策都基于Web服务调用,则Web服务可以使用HttpContext.Current.Identity来验证用户。即使有人打开Silverlight应用程序,任何服务调用都会失败,除非它们经过适当的身份验证。否则,我要么去传票,所以Silverlight信任用户有效(你可以创建一个接受Guid并返回角色信息的服务)或让用户从Silverlight登录(你面前有一个服务)验证机制,然后返回票证和/或角色信息)。

如果您决定使用WCF RIA,它会变得更有趣,请查看这些示例以了解烘焙身份验证: http://code.msdn.microsoft.com/RiaServices/Release/ProjectReleases.aspx?ReleaseId=2661

答案 1 :(得分:0)

1。)绝对可以在ASP.NET页面上嵌入Silverlight xap。 2.)至于凭证,使用cookie可以工作,或者您可以通过initparams传递令牌并通过Web服务验证该令牌以查看用户是否有效

传递凭据总是存在风险,特别是当它在客户端计算机上运行时。也就是说,Silverlight会为你买很多东西,所以不要让认证的挑战阻碍你。