微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

当控制器具有AllowAnonymous属性时,ASP.net MVC Authorize属性不起作用

如何解决当控制器具有AllowAnonymous属性时,ASP.net MVC Authorize属性不起作用

我有asp.net MVC5项目 我匿名允许Home控制器中的所有操作
但是现在的要求是防止2项操作,并且只有在用户登录后才可以访问它们。
下面的代码不起作用意味着没有登录显示求职页面

using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Data.Entity;
using System.Threading;
using System.Web;
using System.Web.Mvc;
using myproject.Models;
using Newtonsoft.Json;
using System.Web.Script.Serialization;
using System.Net;
using System.Net.Mail;
using System.IO;
using Microsoft.AspNet.Identity;
using System.Text.RegularExpressions;
using System.Configuration;

namespace myproject.Controllers
{
    [AllowAnonymous] /************Controller level AllowAnonymous************/
    public class HomeController : Controller
    {
        private ApplicationDbContext db = new ApplicationDbContext();

        public HomeController()
        {
             //code
        }

        [Authorize]/***********************this is not working*************/
        public ActionResult Jobapply(int id)
        { 
        return View();
        }


    [Authorize]/***********************this is not working*************/
    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Jobapply(VacancyApplication vacancyApp)
    {
        return View();
    }
 }
}

解决方法

您可以在控制器级别使用[Authorize]属性,并单独允许您要未经授权允许的操作将[AllowAnonymous]属性应用于该特定操作。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。