我正在.NET MVC 5应用程序中工作。我不想使用 Entity Framework 。我想对RavenDB数据库进行身份验证。在我看来,我想替换帐户 Controller 随附的UserManager
。我认为我可以重写所有UserManager函数以使用我的数据库,除非我不了解ClaimsIdentity
对象。
在SignInAsync
方法中,有一个对UserManager.CreateIdentityAsync(...)
的调用。我知道它会返回一个ClaimsIdentity
对象。我不知道如何自行创建ClaimsIdentity对象。
我看到它具有4个属性Actor
,BootstrapContext
,Claims
和Label
。我不知道这些属性的用途,也不知道如何正确生成它们。我认为正确生成它们很重要,因为这是制作身份验证Cookie的方式。
我查看了ClaimsIdentity对象here的解释,但这并没有真正帮助我理解。
如果我可以看到CreateIdentityAsync()
的代码,那可能会有所帮助。
如果我要解决所有这些错误,请告诉我。否则,如果有人可以指出如何生成ClaimsIdentity对象,那将很有帮助。
ClaimsIdentity identity = new ClaimsIdentity
{
Actor = ????,
BootstrapContext = ?????,
Claims = ?????,
Label = ?????
}
最佳答案
也许following link可以帮助您:
var claims = new List<Claim>();
claims.Add(new Claim(ClaimTypes.Name, "Brock"));
claims.Add(new Claim(ClaimTypes.Email, "[email protected]"));
var id = new ClaimsIdentity(claims,DefaultAuthenticationTypes.ApplicationCookie);
var ctx = Request.GetOwinContext();
var authenticationManager = ctx.Authentication;
authenticationManager.SignIn(id);
关于authentication - 如何为Asp.NET MVC 5创建ClaimsIdentity对象?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20391592/