Я пытаюсь узнать личность в asp.net. Я создал очень простое приложение, но у меня возникают проблемы при установке тестового пользователя на CreateIdentity.
Я создал OwinStartup:
using System;
using System.Threading.Tasks;
using Microsoft.Owin;
using Owin;
using Microsoft.AspNet.Identity;
using Microsoft.Owin.Security.Cookies;
[assembly: OwinStartup(typeof(Identity.Startup))]
namespace Identity
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
// For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=316888
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Login")
});
}
}
}
У меня есть простая страница:
@using (Html.BeginForm("SignIn", "Login"))
{
<input type="text" name="user" placeholder="user" />
<input type="password" name="password" placeholder="Password" />
<input type="submit" value="Login" id="btnSubmit" />
}
Затем в моем контроллере я пытаюсь подтвердить имя пользователя и пароль (жесткий код для моих тестов).
public ActionResult SignIn(UserModel model)
{
// just for test
string defaultPassword = "123456";
string defaultUser = "test";
if(model.User == defaultUser && model.Password == defaultPassword)
{
// Set authentication
var userStore = new UserStore<IdentityUser>();
var manager = new UserManager<IdentityUser>(userStore);
var authenticationManager = HttpContext.GetOwinContext().Authentication;
var userIdentity = manager.CreateIdentity(model, DefaultAuthenticationTypes.ApplicationCookie);
authenticationManager.SignIn(new AuthenticationProperties() { IsPersistent = false }, userIdentity);
}
return new HttpStatusCodeResult(HttpStatusCode.OK);
}
Моя проблема в том, что manager.CreateIdentity
ожидает переменную типа IdentityUser, а не мою модель. Как я могу создать IdentityUser?
Спасибо