我需要在HttpContext.Session
方法中获取GrantResourceOwnerCredentials
。但是,当我尝试访问null
时,我会收到Httpcontext.Session
。
以下是我的代码:
public void ConfigureAuth(IAppBuilder app)
{
PublicClientId = "self";
OAuthOptions = new OAuthAuthorizationServerOptions
{
TokenEndpointPath = new PathString("/Token"),
Provider = new ApplicationOAuthProvider(
PublicClientId,
DependencyResolver.Current.GetService<ApplicationUserManager>(),
HttpContext.Current),
//AuthorizeEndpointPath = new PathString("/api/Account/ExternalLogin"),
AccessTokenExpireTimeSpan = TimeSpan.FromMinutes(3),
// In production mode set AllowInsecureHttp = false
AllowInsecureHttp = true,
RefreshTokenProvider = new RefreshTokenProvider(
DependencyResolver.Current.GetService<ApplicationDbContext>())
};
// Enable the application to use bearer tokens to authenticate users
app.UseOAuthBearerTokens(OAuthOptions);
}
我在设置HttpContext
会话值的地方使用SAML,但是我需要再次将Session
值重新检查到我的GrantResourceOwnerCredentials
方法中,但是会话始终为null这里。
答案 0 :(得分:0)
...我需要再次[在]我的GrantResourceOwnerCredentials方法中重新检查该会话值。
检查GrantResourceOwnerCredential
方法中的会话值不是一个好主意。会话存储在请求附带的cookie中。由于请求是通过令牌端点进入的,因此不会保护请求免受篡改cookie。这意味着恶意用户可能会篡改cookie并更改会话。