zoukankan      html  css  js  c++  java
  • Silverlight WCF RIA服务(三十)身份验证、角色、个性化 1

    在Web应用中,我们经常会限制某些特定用户使用一些功能,并对每个用户保持性能。ASP.NET提供了身份验证、角色、个性化实现这些功能。身份验证允许我们核实用户的凭证并标记用户为已登录。角色允许我们根据职责来把用户分组,并对组中成员授予资源许可。个性化允许我们保
      

    在Web应用中,我们经常会限制某些特定用户使用一些功能,并对每个用户保持性能。ASP.NET提供了身份验证、角色、个性化实现这些功能。身份验证允许我们核实用户的凭证并标记用户为已登录。角色允许我们根据职责来把用户分组,并对组中成员授予资源许可。个性化允许我们保持验证用户的属相并在web应用中检索这些属性。

    WCF RIA Services框架在表现层和中间层都提供这些功能。这节就介绍RIA Services中的身份验证、角色、和个性化。

    身份验证域服务
    RIA Services提供身份验证域服务模板来简化在表示层中使用身份验证、角色和个性化。我们把验证域服务添加到服务端项目中。

    当我们添加一个身份验证域服务时,RIA Services框架自动在服务端添加两个类。代表身份验证服务的类派生于AuthenticationBase(T)类。代表用户的类派生于UserBase类。用户类为已经验证的用户包含个性化属性。
    通过客户端代码,我们调用身份验证域服务来请求我们需要的验证、角色或个性化信息。

    WebContext
    当我们添加一个身份验证域服务时,RIA Services自动在客户端生成一个WebContext类。这个类派生于WebContextBase类,并允许我们在客户端访问身份验证域服务和用户。用Current属性来获取WebContext的当前实例。

    身份验证
    要想在RIA Services解决方案中使用身份验证,我们必须在服务端和客户端来配置验证。
    通过在客户端使用WebContext,我们可以从Silverlight应用程序同步登陆用户。当我们实施了身份验证时,我们通常会用到下面的方法和属性。
    Authentication属性(WebContext.Current.Authentication): 提供对身份验证服务的访问。
    User属性(WebContext.Current.User): 提供对包含用户状态的对象的访问。
    Login(String,String)方法(WebContext.Current.Authentication.Login(String,String):同步验证用户凭证。
    Logout(Boolean)方法(WebContext.Current.Authentication.Logout(boolean):同步登出一个已验证用户。

    角色
    在我们实施了身份验证后,我们就可以配置我们的解决方案来使用角色功能。当我们实施角色功能时,通常会用到下面的属性和方法。
    WebContext.Current.User.Roles : 提供用户被赋予的角色的集合。
    WebContext.Current.User.IsInRole(String) : 判断已验证用户是否是指定角色的成员。

    个性化
    要想使用个性化功能,我们必须为个性化功能配置我们的解决方案。当我们实施了个性化功能时,通常会用到下面的属性和方法。
    WebContext.Current.User : 包含所有我们已经添加到User类中的属性。例如,User.PhoneNumber。
    LoadUser()方法(WebContext.Current.Authentication.LoadUser()) : 刷新用户状态。
    SaveUser(Boolean)方法(WebContext.Current.Authentication.SaveUser(boolean)) : 把所有的更改保存到用户状态中。

    在客户端处理身份验证错误
    我们可以处理在登录、登出、装载或保存用户时产生的错误。思路是通过在调用这些方法时提供回调参数。在回调方法中,我们添加处理错误的代码,并调用MarkErrorAsHandled方法来指定framwork不要抛出异常。AuthenticationService类允许我们在调用下面的方法时提供回调参数。
    -- LoadUser
    -- Login
    -- Logout
    -- SaveUser

    限制对域服务的访问
    在我们实施了身份验证和角色功能后,我们就可以限制特定用户对域服务的访问。可以对整个域服务或服务中个别的操作应用下面的属性。如果我们对整个服务使用了属性,它会应用到所有的操作。
    - RequiresAuthenticationAttribute : 指定只有具有验证凭证的用户可以访问操作。
    - RequiresRoleAttribute : 指定只有属于特定角色的验证用户可以访问操作。
    我们也可以创建自己的验证属性,更多相关信息可以看后面的章节。

    Powered By D&J (URL:http://www.cnblogs.com/Areas/)
  • 相关阅读:
    hdu5091(线段树+扫描线)
    hdu2874(tarjan)
    hdu4252
    poj2452(RMQ+二分)
    Dragon Balls HDU
    CF803
    poj1962(带权并查集)
    hdu2818(带权并查集)
    GitHub入门之一:使用github下载项目 .
    (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间
  • 原文地址:https://www.cnblogs.com/Areas/p/2172195.html
Copyright © 2011-2022 走看看