2010-09-03 61 views
1

我可以在没有成员身份的情况下在ASP.NET中使用表单身份验证。 即:ASP.NET FormsAuthentication和成员

FormsAuthentication.RedirectFromLoginPage(usuario.UsuDs, false);//usuario.UsuDS is the textbox username in login's form 

那么我可以写这样的代码:

 [Authorize(User="UserTest")] 
     public ActionResult Criar(Usuarios usuario) 
     { 
      try 
      { 
       ... 
      } 
       ... 
} 

而且只授权在especific意见 “UserTest” 用户。 不过,我想这样写:

 [Authorize(Roles="Admin")] 
     public ActionResult Criar(Usuarios usuario) 
     { 
      try 
      { 
       ... 
      } 
       ... 
} 

,但我不能设置角色,不成员。

任何ideas设置并从ASP.NET没有成员资格获取角色?

回答

2

您当然可以使用没有Membership的角色。事实上,在ASP.NET 2.0之前,我们根本没有成员资格,garsh darnit,我们喜欢这种方式! ;-)

这是一篇文章,展示了如何在没有成员身份的情况下实现角色:Role-Based Authorization With Forms Authentication。简而言之,您必须编写一些代码,在用户通过身份验证后将角色分配给用户。

快乐编程!

+0

我一直在使用该代码一段时间了。简单而有效。 – 2010-09-03 18:50:25

1

当然你可以 - Authorize元素只是询问居住在HttpContext.Current.User属性中的IPrincipal,它具有哪些角色。现在,如果你要说,将自己的定制校长填充到该对象中,可以非常容易地拥有角色等。