这是我正在尝试做的事情:
首先,我正在创建一个UserManager
var userManager = new UserManager<IdentityUser>(new CustomUserStore());
由于任何用户都是有效的,我创建了一个CustomUserStore
并更改了FindById
方法
public class CustomUserStore : UserStore<IdentityUser>
{
public override Task<IdentityUser> FindByIdAsync(string userId)
{
return Task.Run<IdentityUser>(() =>
{
return new IdentityUser
{
Id = userId,
UserName = userId
};
});
}
}
然后我尝试创建一个身份
var user = new IdentityUser("anyusername");
var identity = userManager.CreateIdentity(
user,
DefaultAuthenticationTypes.ApplicationCookie);
然后我尝试使用来自的SignIn
方法IAuthenticationManager
OwinContext
HttpContext.Current.GetOwinContext().Authentication.SignIn(
new AuthenticationProperties
{
IsPersistent = true
}, identity);
一切正常,不会抛出任何异常,但是当我尝试使用Authorize
属性访问一个简单的操作时,它不会让我看到页面,就好像我没有登录一样。
[Authorize]
public ActionResult Index()
{
return View();
}
有关更多上下文,我在此处添加了完整代码:
为什么不登录?