在ASP.NET MVC中有这样的东西是可能的吗?
[Authorize]
[AcceptVerbs(HttpVerbs.Get)]
public string AddData(string Issues, string LabelGUID)
{
return "Authorized";
}
[AcceptVerbs(HttpVerbs.Get)]
public string AddData()
{
return "Not Authorized";
}因此,如果用户未登录,则默认为未授权操作。
发布于 2008-12-01 20:56:53
是的,这是可能的。您需要创建自己的ControllerActionInvoker并覆盖FindActionMethod成员。我会让基类完成它的工作,然后检查它返回的方法是否满足您的条件,如果不满足,则返回一个更好的匹配。
我正在做这样的事情,让我的控制器有一个“默认操作”,它工作得很好。请查看MvcContrib和他们的ActionInvoker实现,以获得一个非常好的示例。
发布于 2008-11-30 23:29:36
我想不行。具有最佳参数匹配的控制器操作将被选中,然后将应用属性。
你可以使用
if (Request.IsAuthenticated)
{
return "Authorized";
}
else
{
return "Not Authorized";
}在幕后Authorize本质上也在做同样的事情
protected virtual bool AuthorizeCore(IPrincipal user)
{
if (user == null)
{
throw new ArgumentNullException("user");
}
if (!user.Identity.IsAuthenticated)
{
return false;
}
...snip...
}https://stackoverflow.com/questions/329570
复制相似问题