首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何设置2个同名的action,1个已授权,1个未授权?

如何设置2个同名的action,1个已授权,1个未授权?
EN

Stack Overflow用户
提问于 2008-11-30 23:09:59
回答 2查看 475关注 0票数 3

在ASP.NET MVC中有这样的东西是可能的吗?

代码语言:javascript
复制
[Authorize]
[AcceptVerbs(HttpVerbs.Get)]
public string AddData(string Issues, string LabelGUID)
{
    return "Authorized";
}

[AcceptVerbs(HttpVerbs.Get)]
public string AddData()
{
    return "Not Authorized";
}

因此,如果用户未登录,则默认为未授权操作。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2008-12-01 20:56:53

是的,这是可能的。您需要创建自己的ControllerActionInvoker并覆盖FindActionMethod成员。我会让基类完成它的工作,然后检查它返回的方法是否满足您的条件,如果不满足,则返回一个更好的匹配。

我正在做这样的事情,让我的控制器有一个“默认操作”,它工作得很好。请查看MvcContrib和他们的ActionInvoker实现,以获得一个非常好的示例。

票数 3
EN

Stack Overflow用户

发布于 2008-11-30 23:29:36

我想不行。具有最佳参数匹配的控制器操作将被选中,然后将应用属性。

你可以使用

代码语言:javascript
复制
if (Request.IsAuthenticated)
{  
    return "Authorized";
}
else
{  
    return "Not Authorized";
}

在幕后Authorize本质上也在做同样的事情

代码语言:javascript
复制
protected virtual bool AuthorizeCore(IPrincipal user)
{
    if (user == null)
    {
        throw new ArgumentNullException("user");
    }

    if (!user.Identity.IsAuthenticated)
    {
        return false;
    }

    ...snip...
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/329570

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档