asp.net MVC простой логин - PullRequest
       7

asp.net MVC простой логин

0 голосов
/ 27 апреля 2018

Я пытаюсь узнать личность в 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?

Спасибо

...