Member 12919448 Ответов: 1

Храните файлы cookie в браузере


У меня есть Asp.net проект веб-приложения с WebApi и индивидуальной учетной записью пользователя.
Я реализовал регистрацию и вход в систему, а также использовал angularjs в интерфейсе.

Теперь мне нужно хранить файлы cookie в браузере.

Я запутался, если аутентификация на основе файлов cookie хранит файлы cookie в браузере?

В своем проекте я аутентифицирую пользователей на основе токена.

Я провожу исследования, но это сбивает меня с толку, и я не нашел четкого руководства по хранению файлов cookie с помощью Asp.Net Identity webApi.

Что я уже пробовал:

public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
    {
        var userManager = context.OwinContext.GetUserManager<ApplicationUserManager>();

        ApplicationUser user = await userManager.FindAsync(context.UserName, context.Password);

        if (user == null)
        {
            context.SetError("invalid_grant", "The user name or password is incorrect.");
            return;
        }
       /* 
   I tried the following but I get an error that Request doesn't exist

 var claims = new List<Claim>();
        claims.Add(new Claim(ClaimTypes.Name, context.UserName));
        var id = new ClaimsIdentity(claims, DefaultAuthenticationTypes.ApplicationCookie);

        var ctx = Request.GetOwinContext();
        var authenticationManager = ctx.Authentication;
        authenticationManager.SignIn(id);


                 */



        ClaimsIdentity oAuthIdentity = await user.GenerateUserIdentityAsync(userManager);
        ClaimsIdentity cookiesIdentity = await user.GenerateUserIdentityAsync(userManager);

        AuthenticationProperties properties = CreateProperties(user.UserName);
        AuthenticationTicket ticket = new AuthenticationTicket(oAuthIdentity, properties);
        context.Validated(ticket);
        context.Request.Context.Authentication.SignIn(cookiesIdentity);
}


Пожалуйста, не предоставляйте мне ссылку на asp.Чистая личности в MVC, я хочу, чтобы веб-API.

1 Ответов

Рейтинг:
1

Vincent Maverick Durano

Для веб-API следует ссылаться на следующее пространство имен:

Microsoft.Owin.Host.SystemWeb


а затем ссылайтесь на контекст OWIN следующим образом:

HttpContext.Current.GetOwinContext().GetUserManager<ApplicationUserManager>();


Member 12919448

Один вопрос: должен ли я хранить файлы cookie в интерфейсе? например, в ngCookies ?
В cookies теперь я просто вижу .AspNet.ApplicationCookie

Vincent Maverick Durano

Это все зависит от вас. ngCookies-это угловой сервис, который предназначен для использования в приложениях на основе angular.