簡體   English   中英

Web API沒有會話 - 需要檢查用戶是否經過身份驗證

[英]Web API has no session - need to check if user is authenticated

我正在創建我的第一個WebAPI項目,並且遇到了我的第一個障礙。 似乎因為WebAPI模型是無狀態的,所以我沒有可用的Session。 因此,我在登錄時嘗試添加會話變量失敗了。

public static void CreateSession(int userId, string firstName, string surname, int timezoneOffset, string timezoneName)
{
    // Create the object.
    var session = new SessionToken
    {
        FirstName = firstName,
        Surname = surname,
        TimezoneName = timezoneName,
        TimezoneOffset = timezoneOffset,
        UserID = userId
    };

    // Is there an existing session?
    var existing = HttpContext.Current.Session[SESSIONNAME];

    // If so, we need to kill it and refresh it. Not sure why we would have this case though.
    if (existing != null)
        HttpContext.Current.Session.Remove(SESSIONNAME);

    // Create the session.
    HttpContext.Current.Session.Add(SESSIONNAME, session);

}

Session為null,這是因為WebAPI使用的無狀態模型。

如何使用Web API實現此目的? 如何檢查和查詢當前用戶是否有效? 我的會話通常會保留一些項目,例如chaps名稱,在布局屏幕上呈現 - 但看起來現在不可能。

建議的方法是使用無狀態身份驗證和授權令牌

多年以來,使用OWIN中間件配置WebAPI以集成OAuth2工作流非常容易。

了解如何遵循本教程

您在OAuth2中所謂的會話項目 ,您談論的聲明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM