gpt4 book ai didi

c# - 未调用自定义 ASP.NET 属性

转载 作者:太空宇宙 更新时间:2023-11-03 22:59:47 25 4
gpt4 key购买 nike

我有一个自定义授权属性在我的 asp.net 类中没有被调用,我不知道我缺少什么。

我的属性看起来像这样:

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
public class MyAuthorize : System.Web.Http.AuthorizeAttribute
{
public override void OnAuthorization(HttpActionContext actionContext)
{
// ...
}

protected bool AuthorizeCore(HttpContextBase httpContext)
{
// Logic here.
return false;
}
}

我在 WebService 中这样调用它:

[WebService(Namespace = "http://something/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class AccessPoint : System.Web.Services.WebService
{
[WebMethod]
[MyAuthorize]
public bool SomeWebMethod(int a)
{
//Do stuff
return false;
}
}

每次我运行它时,它都会直接掉落并且永远不会触发该属性。供引用;我使用 System.Web.Http.AuthorizeAttribute 因为 System.Web.Mvc.AuthorizeAttribute 告诉我 AuthorizeAttribute 不存在。

最佳答案

您似乎在 ASP.NET Web API 和传统的经典 ASMX WebServices 之间制造了可怕的混淆。您已经编写了一个 ASP.NET Web API 授权属性(设计用于 ASP.NET API REST 服务)并将其应用于遗留 ASMX WebService。这两种技术完全不同,不应混合在一起。

这就像试图将兰博基尼发动机安装在马车上。

关于c# - 未调用自定义 ASP.NET 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43619427/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com