我们在网站上有两部分用于身份验证。第一次在admin中使用,第二次用于用户进入site.when在站点中进行管理员身份验证并转到用户页面,使error.how为这些创建不同的身份验证?web配置代码:
<authentication mode="Forms">
<forms loginUrl="~/admin/Login.aspx" timeout="2880" />
</authentication>
答案 0 :(得分:1)
根据您在评论中的回复...
我们在登录时读取用户权限。当我使用User.Identity.IsAuthenticated然后返回true。但是这个经过身份验证的admin.how为用户做了不同的身份验证吗?
检查用户是否经过身份验证与检查用户的权限不同。身份验证仅告知您访问您站点的人员已经过身份验证(即登录到他们的帐户)。
你的等式中缺少的是授权阶段(还记得大学/大学吗?每个人都签发了身份证,在进入学院/大学校园时,你自己认证,工作人员也认证自己,学生将无权进入工作人员或执行某些任务,但工作人员这样做)。
我们使用所谓的Role
实现此功能,每个用户都应拥有Role
。每个Permissions
都应该有一组与Permissions
相关联的内容,现在我不会担心Role
,因为如果你专注于“单独执行角色”,它可以真正快速地复杂化现在,这足以让你前进。
每个用户都有与其帐户相关联的角色后,您可以检查他们的IPrinciple
,而不是他们是否只是经过身份验证,这对您来说并不多。
GetUserRoles()
接口应该有一个扩展方法,沿着User.Identity.GetUserRoles()
已经在框架中实现的行{{1}}。