我在我的Silverlight RIA中扩展了UserBase
中的System.ServiceModel.DomainServices.Server.ApplicationServices
类,是的,人们仍然使用Silverlight,我想知道关于IsInRole(@"domain\groupName")
的最佳做法是什么以及我如何可能会远离使用硬编码的组名?
我正在使用Windows身份验证和身份验证域服务。
答案 0 :(得分:2)
您可以将所有域\组字符串放在静态类中 - 然后至少您的硬编码字符串都在一个位置。
如果你想使用RequiresRole属性,那么字符串将需要是const而不是static,否则VS会在构建期间抱怨。
硬编码组名称并不是那么糟糕 - 问题是硬编码的域名恕我直言 - 因为您可以定义专属于您的应用程序的组并将设置上的责任推送到网络管理员(这是多少Windows服务器应用程序行为)
或者,您可以使用标准ASP.NET角色,并在域组和ASP.NET角色之间进行一些自定义映射(有点像SQL Server必须这样做)