我在签署用户时设置IsPersistent,如何读取该值?
var identity = await UserManager.CreateIdentityAsync(appUser, DefaultAuthenticationTypes.ApplicationCookie);
HttpContext.GetOwinContext().Authentication.SignIn(new AuthenticationProperties() { IsPersistent = false }, identity);
答案 0 :(得分:1)
你可以试试这个,我还没试过它
IAuthenticationManager AuthenticationManager
{
get { return HttpContext.GetOwinContext().Authentication; }
}
答案 1 :(得分:1)
AspNet.Identity
使您可以访问会话的bool
的{{1}}值。读取其值的最直接方法是调用IsPersistent
:
AuthenticateAsync()
请注意,您需要将其包装在@using Microsoft.AspNet.Identity;
var authenticateResult = await HttpContext.GetOwinContext()
.Authentication.AuthenticateAsync(
DefaultAuthenticationTypes.ApplicationCookie
);
var isPersistent = authenticateResult.Properties.IsPersistent; //// true or false
方法中,例如:
async
答案 2 :(得分:0)
由于没有太多描述,我不确定上下文。无论如何,当您对当前请求执行身份验证时,您可以获得随登录呼叫提供的所有AuthenticationProperties
。代码将是......
AuthenticateResult authenticateResult = await HttpContext.GetOwinContext().Authentication.AuthenticateAsync(DefaultAuthenticationTypes.ApplicationCookie);
AuthenticationProperties yourAuthenticationProperties = authenticateResult.Properties;
答案 3 :(得分:0)
由于@Nkosi说你可以不从OWIN中检索信息,因为它没有存储在那里,你需要检索cookie本身并手动解析信息,但为此您需要一个像this one这样的OWIN中间件,这样您就可以根据需要操作cookie。
答案 4 :(得分:0)
如果您在ConfigureAuth中配置了static property CookieAuthOptions
,或者任何其他AuthOption也应该实现CookieAuthOptions
(例如:ISecureDataFormat<AuthenticationTicket>
),则可以声明OAuthBearerOptions.AccessTokenFormat
。这个包含Protect
&amp; Unprotect
方法。
每当您需要访问AuthenticationProperties
时,您必须掌握Owin上下文以获取对实现正确格式的故障单的引用。
作为基本的示例步骤,
Startup.cs => public static CookieAuthenticationOptions CookieAuthOptions;
Startup.cs => ConfigureAuth => CookieAuthOptions.CookieName = "xxx";
BaseController.cs => Startup.CookieAuthOptions.TicketDataFormat.Unprotect(Request.Cookies["xxx"].Value).Properties;
得到你想要的东西。
PS:你没有提到你需要它的地方,我认为它将在一个控制器中。答案 5 :(得分:0)
AuthenticateResult authenticateResult = await HttpContext.GetOwinContext()。Authentication.AuthenticateAsync(DefaultAuthenticationTypes.ApplicationCookie);
AuthenticationProperties yourAuthenticationProperties = authenticateResult.Properties;
答案 6 :(得分:0)
var authenticationInfo = await HttpContext.Authentication.GetAuthenticateInfoAsync(DefaultAuthenticationTypes.ApplicationCookie);
authenticationInfo.Properties ...
我假设 DefaultAuthenticationTypes.ApplicationCookie 包含cookie身份验证方案。