使用FormsAuthentication在ASP.NET中进行身份验证

时间:2012-07-31 17:35:12

标签: asp.net

我在ASP.NET项目中使用FormsAuthenticationASP.NET Memberships and Roles。我有一些aspx文件只能由经过身份验证的用户查看/访问。我想我可以使用以下两种方法之一来做到这一点。

  1. 配置web.config文件。允许具有“admin”和“members”角色的用户访问这些apsx文件,并拒绝所有其他匿名用户。

  2. 在这些apsx文件的page_load事件中,只需使用HttpContext.Current.User.Identity.IsAuthenticated

  3. 检查是否对该用户进行了身份验证

    我想知道这两种方法对于apsx文件是否相同。

3 个答案:

答案 0 :(得分:1)

它们并不等同。方法1.仅允许访问“admin”和“members”角色。如果您添加其他角色,则他们将无权访问。方法2允许任何已登录的用户访问数据。

我认为首选的方法是根据应该访问它们的角色来组织目录中的aspx文件。然后在web.config中的目录上配置访问权限。

答案 1 :(得分:1)

正如其他人所说,这不等同。但是,即使你修改“2.”检查角色时,这是一种更糟糕的方法,因为您引入了一个自定义代码来处理可以以标准方式轻松处理的内容。

另请考虑另一种方法,您可以在其中创建单独的文件夹,将受限制的网页放在那里并创建辅助web.config以包含:

...
<system.web>
   <authorization>   
       <allow roles="admin,members" />
       <deny users="*" />
   </authorization>   
</system.web>

这样您就需要授权文件夹,页面,样式,图像中的所有资源。

答案 2 :(得分:0)

您好,您必须明确认证和授权

  1. “HttpContext.Current.User.Identity.IsAuthenticated”是:Authentification

  2. “允许具有”admin“和”member“角色的用户为:授权,在身份验证后执行授权

  3. 您可以阅读这篇文章:http://www.duke.edu/~rob/kerberos/authvauth.html

    身份验证是系统可以安全地识别其用户的机制。身份验证系统提供问题的答案:

    Who is the user?
    Is the user really who he/she represents himself to be? 
    

    授权系统提供问题的答案:

    Is user X authorized to access resource R?
    Is user X authorized to perform operation P?
    Is user X authorized to perform operation P on resource R?