- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
您好,我正在尝试实现自定义授权过滤器
//The Authourization attribute on a controller
public class CustomAdminAuthorizationFilter : IAuthorizationFilter
{
private readonly IAuthentication _authentication;
public SageAdminAuthorizationFilter(IAuthentication authentication)
{
_authentication = authentication;
}
public void OnAuthorization(AuthorizationContext filterContext)
{
bool result = _authentication.Authorize(filterContext.HttpContext);
}
}
正如您在 OnAuthorization 上看到的那样,我得到了一个真假的结果。我需要设置什么才能返回我来自的地方?
编辑:
它似乎仍然直接把我扔到登录页面
我确实注入(inject)了 IAuthetication
this.BindFilter<CustomAdminAuthorizationFilter>(FilterScope.Controller, 0);
Bind<IAuthentication>().To<CustomAuthenticationService>();
然后我在 Controller 中装饰我的 Action 。
[Authorize]
public ActionResult Index()
{
ViewBag.Title = "Welcome";
ViewBag.Message = "Welcome to ASP.NET MVC!";
return View();
}
在我的 web.config 中我正在使用
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>
这应该改变吗?
如有任何帮助,我们将不胜感激。
最佳答案
将其更改为 Attribute
,而不是简单的 IAuthorizationFilter
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
public class SageAdminAuthorizeAttribute : AuthorizeAttribute, IAuthorizationFilter
{
readonly IAuthentication _authentication;
public SageAdminAuthorizeAttribute(IAuthentication authentication)
{
_authentication = authentication;
}
public override void OnAuthorization(AuthorizationContext filterContext)
{
if (!_authentication.Authorize(filterContext.HttpContext))
filterContext.Result = new HttpUnauthorizedResult();
}
}
现在不要使用 [Authorize]
,而是使用新的 [SageAdminAuthorize]
属性
[SageAdminAuthorize]
public ActionResult Index()
{
ViewBag.Title = "Welcome";
ViewBag.Message = "Welcome to ASP.NET MVC!";
return View();
}
关于c# - ASP.NET IAuthorizationFilter OnAuthorization,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5663405/
我有一个现有站点,该站点的所有 Controller 都有一个基 Controller 类,它覆盖了 OnAuthorization 的实现。在最简单的简化形式中: protected overrid
我有一个自定义过滤器: public class SetAuthFilter : IAuthorizationFilter { public void OnAuthorization(Auth
我已经实现了自己的 AuthorizeAttribute,因为我通过 cookie 传递我的授权 token 。 public class ValidateToken : AuthorizeAttri
我使用具有自定义授权的 WebApi 服务。这是 AuthorizationAttribute:(为了尽可能简单,我删除了所有逻辑并仅尝试发送 401): public class Auth : Au
我已经编写了一个用于 AngularJS XSRF 方法的自定义授权过滤器,但是该过滤器没有被调用。 奇怪的是,我从另一个项目中复制了它,在那里似乎工作正常。 这是属性/过滤器代码。 [Att
我正在编写用于访问另一个 REST API 的 Web API ( v2.2 )。原因是我想限制一些功能并提供更友好的数据。简而言之,我正在为一些 REST API 编写包装器。我通过 Authori
我正在实现 PayPal Checkout 服务器集成,我想知道在触发 onAuthorize 方法时将订单标记为已付款是否安全。 我也想知道是否需要实现 webhook 来验证付款。 谢谢。 最佳答
您好,我正在尝试实现自定义授权过滤器 //The Authourization attribute on a controller public class CustomAdminAuthoriza
为什么 OnAuthorization 为我的直接 AuthorizationFilterAttribute 调用了两次? public class ApiAuthenticateAttribute
如果用户的电子邮件地址尚未经过验证,我会尝试将用户重定向到不同的操作。问题是,我不想让他们注销,我只想重定向他们。当我在 Controller 的 OnAuthorization 中执行此操作时,它会
我看过很多指南,其中自定义授权过滤器的实现涉及调用 base.OnAuthorization(filterContext) 作为最后一步。我有我自己的自定义授权过滤器,它在没有上面提到的情况下工作得很
我正在尝试进行一些自定义授权,因此我创建了一个覆盖 OnAuthorization 方法的 Controller 。我还将 Authorize 属性应用于此 Controller 。问题是为什么在基本
根据documentation on PayPal's Developer site在高级服务器集成下,重定向 URL 必须在付款调用中提供,但是: (…) PayPal does not autom
我有来自 https://developer.paypal.com/demo/checkout/#/pattern/confirm 的以下代码 代码在 Paypal 结帐页面显示时有效,我可以输入我的
我有一个具有两种类型角色的 ASP.NET MVC4 站点:管理员和合作伙伴。 基本上,对站点的所有访问都需要用户进行身份验证并具有管理员角色。因此我在 FilterConfig.cs(从 Globa
我们最近通过使用存储在 Azure 文档数据库中的凭据实现自定义 AuthorizationFilterAttribute 来实现 API 身份验证。 DocDB 要求一切都使用异步。 通过实验,我们
我正在开发用于授权的 Web API 解决方案,我们用 BasicHttpAuthorizeAttribute 修饰了每个 Controller 操作方法。继承自 AuthorizeAttribute
这是我的基本 Controller 的代码,其想法是,如果授权字符串不在 HTTP header 中,我们会将它们踢出。我发誓它本来可以正常工作,但现在突然不起作用了。奇怪的是,当我调试时,它实际上是
早些时候我在asp.net中实现了类似的东西 public class Authentication : AuthorizationFilterAttribute { public overr
我在网站的支付流程中遇到了一个很大的安全问题。 我有一个 nodejs 服务器和一个带有 .js 的标准 html 页面,它使用 Paypal Express 结账。 鉴于我的网络应用程序的性质,我的
我是一名优秀的程序员,十分优秀!