我正在ASP.NET MVC上阅读,我刚刚看到一个关于Authorize属性的部分。这就是说,Authorize属性用于检查用户是否针对Controller进行身份验证。这是真的?我知道该属性被设计为用于授权目的,但是也是使用此属性进行身份验证的最佳做法?
如果没有,验证(不执行)身份验证的最佳做法是什么?
如果是这样,为什么这样做呢?我错过了什么吗?
解决方法
Authorize属性可用于检查用户是否登录,还可用于检查用户是否是特定角色的成员,并具有特定的名称。
它基本上执行< authorization>处理的相同的事情web.config中使用Web表单时的部分。
它不指定身份验证方法。它由< authentication> web.config中的部分就像Web表单一样。
编辑(关于认证和授权的澄清):
验证是身份验证。也就是说,您检查以查看用户是谁。这可以通过检查用户名和密码,检查您的Windows身份验证令牌,扫描视网膜,语音识别等。
授权是限制对满足特定标准的用户访问特定资源的行为。为了能够授权用户资源,您应该知道用户拥有的权限。要检查,您应该知道用户是谁的首位。所以用户必须进行身份验证。
基本上,一个空的[Authorize]属性执行授权,而不是身份验证。它不检查你是谁它只是检查你验证的人是否可以访问该资源。然而,其授权标准是“任何人成功认证”。您可以指定不同的条件。所以确实在做授权,而不是认证。