Вопрос дизайна Silverlight - PullRequest
2 голосов
/ 27 июля 2010

Я собираюсь разработать приложение для работы и пытаюсь решить, использовать ли Silverlight Business App или Asp.Net Web App. Мой менеджер обеспокоен производительностью и временем загрузки, которое потребовалось бы, если бы я создал все приложение как приложение Silverlight с аутентификацией. На прошлой неделе я играл с некоторыми учебниками, пытаясь понять мою ситуацию, и придумал вопрос дизайна, который мне нужно задать тем, кто опытнее меня.

Можно ли использовать приложение Asp.Net и просто встроить приложение silverlight на одну из страниц, которые будут использоваться в папке, настроенной с авторизацией ролей? И если да, можно ли получить учетные данные пользователя из клиентского приложения silverlight, не пропуская их через initParams.

Я понимаю, что могу установить для аутентификации значение "useCookies", поэтому я подумал, что смогу получить cookie на клиенте и, надеюсь, получить свойство, проверяющее, аутентифицирован ли пользователь.

Кроме того, это была бы рискованная практика? Спасибо за любые советы и указания.

Ответы [ 2 ]

2 голосов
/ 27 июля 2010

Есть несколько подходов, которые вы можете использовать. Хотя я знаю, что вы не хотите показывать учетные данные в параметрах инициализации, вы можете сгенерировать «билет» (аутентификация на основе утверждений) для учетных данных и включить билет (например, GUID) в параметры инициализации. Когда приложение Silverlight запускается, оно потребляет билет, возможно, проверяя его через защищенный вызов веб-службы, и билет больше не будет действительным, поэтому даже если кто-то подделает его или просмотрит источник, его нельзя будет использовать.

Немного зависит от вашей архитектуры. Например, если вы используете проверку подлинности на основе ролей, а большая часть бизнес-логики и / или принятия решений основана на вызовах веб-службы, веб-службы могут использовать HttpContext.Current.Identity для проверки пользователя. Даже если кто-то откроет приложение Silverlight, любые сервисные вызовы не будут выполнены, если они не прошли соответствующую аутентификацию. В противном случае, я бы либо пошел с передачей заявки, чтобы Silverlight доверял пользователю, действительному (вы можете создать службу, которая принимает Guid и возвращает информацию о роли), либо попросил бы пользователя войти в систему из Silverlight (перед вами стоит служба механизм аутентификации, а затем вернуть информацию о билете и / или роли).

Будет еще интереснее, если вы решите использовать WCF RIA, посмотрите эти примеры для встроенной аутентификации: http://code.msdn.microsoft.com/RiaServices/Release/ProjectReleases.aspx?ReleaseId=2661

0 голосов
/ 27 июля 2010

1.) Абсолютно возможно встроить xap Silverlight на страницу ASP.NET.2.) Что касается учетных данных, использование cookie-файлов может работать, или вы можете передать токен через initparams и проверить этот токен через веб-сервис, чтобы убедиться, что пользователь действителен

Всегда существует риск передачи учетных данных вокругособенно когда он работает на клиентском компьютере.Тем не менее, Silverlight много вам покупает, так что не позволяйте проблеме аутентификации вас сдерживать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...