假设我有一个随机接受用户的网站。规则很简单;随机生成器可以告诉用户是否可以登录。
那我应该如何使用这段代码?
private async Task SignInAsync(ApplicationUser user, bool isPersistent)
{
AuthenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie);
var identity = await UserManager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie);
HttpContext.GetOwinContext().SignIn(new AuthenticationProperties() { IsPersistent = isPersistent }, identity);
}
我没有ApplicationUser,我没有注入DbContext,我没有用户(!)表。
主要问题;我的简单身份验证在哪里?
FormsAuthentication.RedirectFromLoginPage ("I_am_a_User", Persist.Checked)
答案 0 :(得分:0)
代码看起来很丑,但我解决了......
AuthenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie);
List<Claim> _claims = new List<Claim>()
{
new Claim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier",
Guid.NewGuid().ToString(),
"http://www.w3.org/2001/XMLSchema#string", "LOCAL AUTHORITY"),
new Claim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name",
"I_am_a_User",
"http://www.w3.org/2001/XMLSchema#string", "LOCAL AUTHORITY"),
new Claim("http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider",
"ASP.NET Identity",
"http://www.w3.org/2001/XMLSchema#string", "LOCAL AUTHORITY"),
};
ClaimsIdentity identity = new ClaimsIdentity(_claims, DefaultAuthenticationTypes.ApplicationCookie);
AuthenticationManager.SignIn(new AuthenticationProperties() { IsPersistent = isPersistent }, identity);