Аутентификация пользователя Silverlight - PullRequest
7 голосов
/ 12 июля 2009

В настоящее время я занимаюсь разработкой приложения Silverlight 3, которое требует некоторой аутентификации пользователя, поскольку данные, извлекаемые из службы WCF, зависят от пользователя. Целевой аудиторией является обычный Интернет - поэтому нет AD для аутентификации.

Вот некоторые из вопросов, которые у меня есть относительно этой ситуации:

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

Ответы [ 2 ]

2 голосов
/ 15 июля 2009

Я использовал аутентификацию ASP.NET. Просто используйте MembershipProvider (или реализуйте свой собственный). Затем перейдите на http://www.silverlightshow.net/items/Accessing-the-ASP.NET-Authentication-Profile-and-Role-Service-in-Silverlight.aspx, чтобы проверить, как вы можете предоставить сервис аутентификации.

Затем в службе WCF вы делаете следующее (размещается в ASP):

public class MyWCFService : IMyWCFService 
{
        // retrieve your UserId from the MembershipProvider
        private int GetUserId()
        {
            MembershipUser user = Membership.GetUser();
            int userId = (int)user.ProviderUserKey;
            return userId;
        }

        // check if user is authenticated
        private bool IsUserAuthenticated()
        {
            return HttpContext.Current.User.Identity.IsAuthenticated;
        }

        public void Subscribe()
        {
            if (!IsUserAuthenticated())
            {
                throw new SecurityException("You must be authenticated to be able to use this service.");
            }

            int userId = GetUserId();
            DoStuff(userId);
        }
}

Надеюсь, это поможет.

2 голосов
/ 12 июля 2009

Я хотел бы рассмотреть возможность использования классов аутентификации, существующих в ASP.NET. Затем вы можете использовать .NET RIA Services (или даже просто WCF) для связи со службой аутентификации.

Считайте эту статью учебником для начинающих.

...