如何在Silverlight RIA中不使用带有IsInRole的魔术字符串



我在Silverlight RIA中扩展了System.ServiceModel.DomainServices.Server.ApplicationServices中的UserBase类,是的,人们仍然使用Silverlight,我想知道关于IsInRole(@"domaingroupName")的最佳实践是什么,以及如何避免使用硬编码的组名?

我正在使用Windows身份验证和身份验证域服务。

您可以将所有域\组字符串放在一个静态类中,那么至少硬编码的字符串都在一个位置。

如果您希望使用RequiresRole属性,那么字符串将需要是常量而不是静态的,否则VS将在构建过程中抱怨。

硬编码的组名并没有那么糟糕-问题是硬编码的域名IMHO-因为你可以定义应用程序专用的组,并将安装的责任推给网络管理员(这就是许多Windows服务器应用程序的行为)

或者,您可以使用标准的ASP.NET角色,并在域组和ASP.NET角色之间进行一些自定义映射(有点像SQL Server必须执行的映射)

最新更新