The name 'DefaultAuthenticationTypes' does not exist in the current context
11,856
Solution 1
DefaultAuthenticationTypes
is part of Identity framework and found in Microsoft.AspNet.Identity
namespace.
To use it, add a using
to the top of the file
using Microsoft.AspNet.Identity;
//...other code
identity = new ClaimsIdentity(DefaultAuthenticationTypes.ApplicationCookie);
or call it directly
identity = new ClaimsIdentity(Microsoft.AspNet.Identity.DefaultAuthenticationTypes.ApplicationCookie);
The second issue was already dealt with in another one of your questions here
Solution 2
For the first, it is just a constant string
If you do not want to install packages the quickest ( and not very orthodox ) solution is
ClaimsIdentity identity = new ClaimsIdentity("ApplicationCookie");
you can see definition here
Author by
User987
Updated on July 19, 2022Comments
-
User987 over 1 year
I'm trying to implement role-based authorization in my web application like following:
[HttpPost] [ActionName("Login")] public ActionResult Login(LoginViewModel model) { if (ModelState.IsValid) { string userName = model.Username; string[] userRoles = (string[])Session["UserRoles"]; ClaimsIdentity identity = new ClaimsIdentity(DefaultAuthenticationTypes.ApplicationCookie); identity.AddClaim(new Claim(ClaimTypes.NameIdentifier, userName)); userRoles.ToList().ForEach((role) => identity.AddClaim(new Claim(ClaimTypes.Role, role))); identity.AddClaim(new Claim(ClaimTypes.Name, userName)); AuthenticationManager.SignIn(identity); return RedirectToAction("Success"); } else { return View("Login",model); } }
I'm getting an error on two lines:
1.ClaimsIdentity identity = new ClaimsIdentity(DefaultAuthenticationTypes.ApplicationCookie);
And:
2.AuthenticationManager.SignIn(identity);
The error 1:
the name 'DefaultAuthenticationTypes' does not exist in the current context
And error 2 is:
Authentication manager does not contains definition for SignIn
I was trying to find a solution how to implement this but I couldn't find anything related to the errors.