cho*_*bo2 33 asp.net-mvc asp.net-membership
授权标签如何确定用户是否获得授权?
比方说,如果用户登录并且他们尝试转到具有Authorize标记的视图.它如何确定用户是否获得授权?它是否对数据库进行查询并检查?
如果他们使用角色授权进入视图怎么样?它是否查询成员资格角色表?
我只是想知道,因为我有ASP.NET成员资格表认为重复的userNames.我使用了大量的字段来确定哪个用户是什么,允许用户具有相同的重复userName,但在我的数据库中仍然是唯一的.
这导致我必须为许多.NET成员资格编写自定义方法,因为它都使用"userName"来搜索而不是使用UserId.
所以我现在想知道是否可以使用Authorize标签.因为我不知道它是如何工作的,如果我不使用.NET成员资格,我就不知道如何确定它.
Kel*_*sey 26
该Authorize
标记使用ASP.NET中的所有内置成员资格检查.对自己的标签起作用非常容易.例如:
public class MyAuthorize : AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
if (httpContext == null) throw new ArgumentNullException("httpContext");
// Make sure the user is authenticated.
if (httpContext.User.Identity.IsAuthenticated == false) return false;
// Do you own custom stuff here
bool allow = CheckIfAllowedToAccessStuff();
return allow;
}
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用[MyAuthorize]
将使用自定义检查的标记.
wom*_*omp 16
ControllerActionInvoker解析属性并OnAuthorization()
在检查凭据时调用它.
该AuthorizationAttribute.OnAuthorization()
方法基本上检查是否User.Identity.IsAuthenticated
为真.这只是利用FormsAuthentication的功能或您可能正在使用的任何其他身份验证方案.
归档时间: |
|
查看次数: |
16219 次 |
最近记录: |