我想知道授权标签如何确定用户是否被授权?
就像说如果用户登录,他们试图去一个具有授权标签的视图。如何确定用户是否被授权?它是否对数据库进行查询并检查?
如果他们去角色授权的视图呢?是否查询会员角色表?
我只是想知道,因为我有什么asp.net会员资格表认为重复的用户名。我使用严重的字段来确定哪个用户是什么,允许用户拥有相同的重复userName,但在我的数据库中仍然是唯一的。
这使得我必须为许多.net会员资料编写自定义方法,因为它都使用“userName”进行搜索,而不是使用UserId。
所以我现在想知道Authorize标签是否可以这样。既然我没有任何线索,它如何工作,喜欢,如果我没有使用.net会员资格,我将不会有一个线索如何确定它。
谢谢
解决方法
授权标签使用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; } }