找不到类型或命名空间名称“ClaimsIdentity”

Joe*_*Joe 1 c# asp.net

我已经添加了这些用途并安装了 nuget 包。为什么我不能使用 Claim?Visual Studio 表示无法找到 ClaimsIDentity、Claim 和 ClaimTypes。

~/Controllers/AccController.cs

using Microsoft.AspNet.Identity;
using Microsoft.Owin.Security;
using System.Threading.Tasks;
using System.Web;
using System.Web.Mvc;

namespace MyProject.Controllers
{
    public class AccController : Controller
    {
        [AllowAnonymous]
        [HttpPost]
        public ActionResult Login(LoginModel model)
        {
            if (!ModelState.IsValid)
            {
                return View();
            }

            // Don't do this in production!
            if (model.Email == "admin@admin.com" && model.Password == "password")
            {
                var identity = new ClaimsIdentity(new[] {
                new Claim(ClaimTypes.Name, "Ben"),
                new Claim(ClaimTypes.Email, "a@b.com"),
                new Claim(ClaimTypes.Country, "England")
            },
                    "ApplicationCookie");

                var ctx = Request.GetOwinContext();
                var authManager = ctx.Authentication;

                authManager.SignIn(identity);

                return Redirect(GetRedirectUrl(model.ReturnUrl));
            }

            // user authN failed
            ModelState.AddModelError("", "Invalid email or password");
            return View();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Isw*_*San 5

尝试将其添加到您的代码中:

using System.Security.Claims;
Run Code Online (Sandbox Code Playgroud)