【问题标题】:How not to use a magic string with IsInRole in Silverlight RIA?如何在 Silverlight RIA 中不使用带有 IsInRole 的魔术字符串?
【发布时间】:2012-07-18 18:50:23
【问题描述】:
我在我的 Silverlight RIA 中扩展了 System.ServiceModel.DomainServices.Server.ApplicationServices 中的 UserBase 类,是的,人们仍在使用 Silverlight,我想知道关于 IsInRole(@"domain\groupName") 的最佳实践是什么,以及我如何摆脱使用硬编码的组名?
我正在使用 Windows auth 和 Authentication DomainService。
【问题讨论】:
标签:
wcf-ria-services
windows-authentication
silverlight-5.0
isinrole
【解决方案1】:
您可以将所有域\组字符串放在一个静态类中 - 然后至少您的硬编码字符串都在一个地方。
如果你想使用 RequiresRole 属性,那么字符串需要是 const 而不是 static,否则 VS 会在构建过程中报错。
硬编码的组名还不错 - 问题是硬编码的域名恕我直言 - 因为您可以定义专属于您的应用程序的组并将设置的责任推给网络管理员(这是多少 Windows 服务器应用程序行为)
或者,您可以使用标准 ASP.NET 角色并在域组和 ASP.NET 角色之间进行一些自定义映射(有点像 SQL Server 必须这样做)