我可以使用[AllowAnonymous]
属性来允许用户访问控制器操作,但是是否有一个属性只允许匿名用户执行操作?例如[AllowAnonymousOnly]
答案 0 :(得分:8)
没有。它不存在。
但是,您可以通过创建自己继承自AuthorizeAttribute。
的属性来创建它你的看起来像是:
public class AllowAnonymousOnlyAttribute : AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
// make sure the user is not authenticated. If it's not, return true. Otherwise, return false
}
}
答案 1 :(得分:0)
您可以检查用户的身份验证。如果用户已登录,则将其重定向远离控制器。这可以使用MVC的角色提供者实现如下:
if(User.Identity.IsAuthenticated)
{
return RedirectToRoute("home");
}
如果用户未登录,则允许用户查看页面内容。