我已经编写了一个自定义AuthorizeAttribute
以在登录页面中显示消息。这是代码。
public class MyAuthorizeAttribute : AuthorizeAttribute
{
public string Message { get; set; }
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
bool authorized = base.AuthorizeCore(httpContext);
if (!authorized)
{
httpContext.Items["LoginFailMessage"] = Message;
}
return authorized;
}
}
在我的行动中,我会做
[MyAuthorize(Message = "Please login to continue")]
public ActionResult Detail()
现在,我无法访问HttpContext.Current.Items["LoginFailMessage"]
我视图中的项目。我意识到问题是,该项目仅针对一个重定向调用存在,但授权失败会导致多个重定向。
那么,有什么办法可以解决这个问题吗?我应该从哪里传递消息?
编辑
我想要做的是,假设允许匿名用户查看某事的简短描述。
与描述,有一个edit
和一个detail
链接。两者都edit
需要detail
用户登录。因此,如果单击其中一个,用户将被重定向到登录页面。
如果用户点击edit
我将显示一条消息Please login to edit
,如果点击detail
可能please login to see detail
在登录页面中。