如何在asp.net c#web表单中进行不同的身份验证?

时间:2016-02-07 06:09:37

标签: c# asp.net authentication

我们在网站上有两部分用于身份验证。第一次在admin中使用,第二次用于用户进入site.when在站点中进行管理员身份验证并转到用户页面,使error.how为这些创建不同的身份验证?web配置代码:

<authentication mode="Forms">
  <forms loginUrl="~/admin/Login.aspx" timeout="2880" />
</authentication>

1 个答案:

答案 0 :(得分:1)

根据您在评论中的回复...

  

我们在登录时读取用户权限。当我使用User.Identity.IsAuthenticated然后返回true。但是这个经过身份验证的admin.how为用户做了不同的身份验证吗?

检查用户是否经过身份验证与检查用户的权限不同。身份验证仅告知您访问您站点的人员已经过身份验证(即登录到他们的帐户)。

你的等式中缺少的是授权阶段(还记得大学/大学吗?每个人都签发了身份证,在进入学院/大学校园时,你自己认证,工作人员也认证自己,学生将无权进入工作人员或执行某些任务,但工作人员这样做)。

我们使用所谓的Role实现此功能,每个用户都应拥有Role。每个Permissions都应该有一组与Permissions相关联的内容,现在我不会担心Role,因为如果你专注于“单独执行角色”,它可以真正快速地复杂化现在,这足以让你前进。

每个用户都有与其帐户相关联的角色后,您可以检查他们的IPrinciple,而不是他们是否只是经过身份验证,这对您来说并不多。

GetUserRoles()接口应该有一个扩展方法,沿着User.Identity.GetUserRoles()已经在框架中实现的行{{1}}。