我在一個ASP MVC登錄表單上工作。爲什麼我的microsoft.owin.security.authenticationmanager登錄方法不起作用?
我有非常簡單的代碼。 A Startup
類和嘗試設置Cookie的操作。下面是我的代碼:
啓動 它位於App_Start(也有與key="owin:AppStartup"
對它的引用在<appSetting>
)
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = "ApplicationCookie",
LoginPath = new PathString("/auth/login"),
});
}
}
被假設驗證用戶是該動作的方法:
[HttpPost]
public ActionResult Login(user model)
{
if(ModelState.IsValid)
{
var identity = new ClaimsIdentity(new[]
{
new Claim(ClaimTypes.Email, "[email protected]"),
new Claim(ClaimTypes.Name, "tom"),
new Claim(ClaimTypes.Role, "admin")
});
var ctx = Request.GetOwinContext();
var authManager = ctx.Authentication;
authManager.SignIn(identity);
return RedirectToAction("Index", "Home");
}
return View(model);
}
但這沒有得到身份認證爲@User.Authenticated
在我的_Layout.cshtml
中是錯誤的,當return RedirectToAction("Index", "Home");
和debbuger顯示IsAuthenticated
屬性爲false(在控制器Login
動作中和在_Layout.cshtml
中。
我已檢查IIS是否爲匿名身份驗證使用我的Windows管理工具啓用,還我已經檢查了啓動設置應用程序啓動時...
我看來,authManager.SignIn(identity)
沒有做的工作。
我們該如何解決?
PS:我甚至不看到瀏覽器彈出,詢問我是否保存密碼