Silverlight的用户认证(Silverlight user authentication)

2019-09-18 10:02发布

我目前正在开发一个Silverlight 3应用程序,需要某种形式的用户身份验证的,因为从WCF服务拉着数据是特定的用户。 目标受众是经常上网 - 所以没有对AD进行身份验证。

下面是一些我有一个关于这种情况的问题:

  • 是否有一个框架或其他机制,支持我吗?
  • 你会推荐Silverlight应用程序内或通过类似形式的权威性以外的机制认证? 哪个更安全?
  • 怎么样外的浏览器支持?

Answer 1:

我用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);
        }
}

希望帮助。



Answer 2:

我会考虑使用中存在的ASP.NET验证类。 然后,您可以使用.NET RIA服务(甚至根本,WCF)与认证服务进行通信。

本文当作底漆。



文章来源: Silverlight user authentication