2010-05-29 53 views
0

我在通过角色和操作使用下列接口的客户端的AzMan的店门口有一个WCF服务:的Silverlight 4 - 对自定义WCF服务authentiation /授权

[OperationContract] 
    bool AuthenticateUser(string password, string appName); 

    [OperationContract] 
    string[] GetRoles(string storelocation, string appName); 

    [OperationContract] 
    string[] GetOperations(string storeLocation, string appName, string selectedRole); 

客户端连接到使用Windows此服务身份验证(但用户必须发送密码才能重新确认身份)。最终,该服务提供了一系列操作,每个客户端都可以根据其所选角色执行操作。

我已经打开了一个新的Silverlight业务应用程序,并试图了解认证/授权如何在此模板中工作,以及在网上搜索如何将我的webservice挂接到已在模板中创建的登录框的示例,但是我完全不知所措,因为如何做到这一点!

任何人都可以提供任何建议吗?

回答

1

业务应用程序模板有一个AuthenticationService,它基于User对象和AuthenticationBase类。 AuthenticationBase具有虚拟方法,您可以重写以使用您自己的安全机制。

例如,有一个基于用户名和密码的Login方法。此方法返回具有名称和角色的IUser。

看过你的界面之后,我会创建一个IUser的子接口来包含允许的操作列表,并更改生成的User类以实现此子接口。我会重写AuthenticationService中的Login和相关方法以使用您现有的基于Azman的代码。

+0

真棒 - 感谢!一旦我搜索了一下认证库并看到了一些例子,我设法将它们全部排序。唯一不同的是,您不需要从IUser派生,只需向模板中已为您创建的共享User类添加任何新属性即可。 – Calanus 2010-06-01 12:18:56

+0

对。感谢您的反馈。 – Timores 2010-06-01 22:38:28