访问GrantResourceOwnerCredentials中的httpcontext.session

时间:2016-09-23 12:58:54

标签: session oauth-2.0 asp.net-web-api2 saml-2.0 httpcontext

我需要在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这里。

1 个答案:

答案 0 :(得分:0)

  

...我需要再次[在]我的GrantResourceOwnerCredentials方法中重新检查该会话值。

检查GrantResourceOwnerCredential方法中的会话值不是一个好主意。会话存储在请求附带的cookie中。由于请求是通过令牌端点进入的,因此不会保护请求免受篡改cookie。这意味着恶意用户可能会篡改cookie并更改会话。