Silverlight 如何覆盖Silvelright 4 RIA Service AuthenticationService User.IsInRole

Silverlight 如何覆盖Silvelright 4 RIA Service AuthenticationService User.IsInRole,silverlight,authentication,wcf-ria-services,Silverlight,Authentication,Wcf Ria Services,我从Silverlight 4导航应用程序模板(启用RIA服务)开始。(因为我真的不喜欢臃肿的业务应用程序模板) 我添加了身份验证服务,可以对用户进行身份验证, 但要覆盖User.IsInRole方法 WebContext.Current.User.IsInRole("Guest"); 但是我找不到任何地方可以推翻这种行为。你想做什么?User.IsInRole是IPrincipal.IsInRole的一个实现,不应该被重写 如果要设置用户角色,可以通过覆盖GetAuthenticatedUs

我从Silverlight 4导航应用程序模板(启用RIA服务)开始。(因为我真的不喜欢臃肿的业务应用程序模板) 我添加了身份验证服务,可以对用户进行身份验证, 但要覆盖User.IsInRole方法

WebContext.Current.User.IsInRole("Guest");

但是我找不到任何地方可以推翻这种行为。

你想做什么?User.IsInRole是IPrincipal.IsInRole的一个实现,不应该被重写

如果要设置用户角色,可以通过覆盖GetAuthenticatedUser或GetAnonymousUser方法在AuthenticationService的服务器上进行设置


如果您想要类似于IsInRole的方法,可以在客户端上使用分部类扩展用户类型,并添加任何有意义的方法。

好吧,我有一个空的身份验证服务,在我的应用程序中,我希望能够调用WebContext.User.IsInRole(“somerole”)这将导致在数据库中进行查找,以查看该用户是否有效地担任该角色。我们有一个表“User”和一个表“Role”,然后是一个链接表“UserInRole”,用于创建MM关系。当有人调用IsInRole(Silverlight强制异步通信)时,您将无法执行查找。不过,您可以在GetAuthenticatedUser中更早地进行查找。或者,您应该能够使用标准RIA服务关联将用户的角色传递给客户端。这可能很有用,但在大多数情况下,将该表提取到服务器上的字符串列表将是最好的方法。