Как не использовать волшебную строку с IsInRole в Silverlight RIA?

Я продлил UserBase класс в System.ServiceModel.DomainServices.Server.ApplicationServices в моем Silverlight RIA, и да, люди все еще используют Silverlight, и мне было интересно, что будет лучшим опытом в отношении IsInRole(@"domain\groupName") и как я могу избежать использования жестко закодированного имени группы?

Я использую аутентификацию Windows и аутентификацию DomainService.

1 ответ

Решение

Вы можете поместить все строки домена \ группы в статический класс - тогда, по крайней мере, все строки в жестком коде находятся в одном месте.

Если вы хотите использовать атрибут requireRole, то строки должны быть константными, а не статическими, иначе VS будет жаловаться во время сборки.

Жестко закодированное имя группы не так уж и плохо - проблема заключается в жестко закодированном доменном имени IMHO, поскольку вы можете определить группы, которые являются эксклюзивными для вашего приложения, и перенести бремя настройки на администратора сети (именно так ведут себя многие серверные приложения Windows)

В качестве альтернативы вы можете использовать стандартные роли ASP.NET и иметь некоторые пользовательские сопоставления между группами доменов и ролями ASP.NET (немного похоже на то, как SQL Server должен это делать)

Другие вопросы по тегам