我在Silverlight RIA中扩展了System.ServiceModel.DomainServices.Server.ApplicationServices
中的UserBase
类,是的,人们仍然使用Silverlight,我想知道关于IsInRole(@"domaingroupName")
的最佳实践是什么,以及如何避免使用硬编码的组名?
我正在使用Windows身份验证和身份验证域服务。
您可以将所有域\组字符串放在一个静态类中,那么至少硬编码的字符串都在一个位置。
如果您希望使用RequiresRole属性,那么字符串将需要是常量而不是静态的,否则VS将在构建过程中抱怨。
硬编码的组名并没有那么糟糕-问题是硬编码的域名IMHO-因为你可以定义应用程序专用的组,并将安装的责任推给网络管理员(这就是许多Windows服务器应用程序的行为)
或者,您可以使用标准的ASP.NET角色,并在域组和ASP.NET角色之间进行一些自定义映射(有点像SQL Server必须执行的映射)