我只是調查了ASP.NET Identity,這似乎是最近用於ASP.NET應用程序中用戶身份驗證的最佳解決方案(將所有ASP.NET Membership替換爲過去)。ASP.NET身份 - 維護有關匿名用戶的信息
我正在尋找一種解決方案,可以保留有關匿名用戶的信息。 即使用戶未通過身份驗證,我們也可以收集並存儲用戶通過身份驗證後可以存儲的大部分個人資料數據。
即使用戶是匿名的,是有意義的存儲像數據:他是寫在網站上(這樣他就可以編輯它們的創建者)
- 購物車
- 評論
- 各站點首選項(他的首選語言,和許多其他設置)
然後,當用戶註冊,我們可以提供給某些數據複製到他的新用戶PR (或自動複製)取決於它是什麼數據。
有沒有可能通過ASP.NET身份來實現這種情況?看起來,當一個用戶在ASP.NET Identity中匿名時,他不能擁有任何用戶配置文件數據。
爲了使用相同的表格存儲所有這些信息與經過驗證的用戶相同,我們可能需要在系統中爲每個訪問該網站的新訪客創建一個新用戶,並執行一些操作,需要存儲一些用戶數據。然後,我們需要傳遞一些cookie標識符給用戶,這樣我們就可以始終將數據連接到用戶,這可以看作是某種形式的認證(雖然對於實際用戶是不可見的)。這樣,訪客用戶實際上可以代表系統的已認證用戶(也許他只是有一個特殊角色?),儘管據他所知,他是匿名的。
您對這種方法有什麼看法? ASP.NET Identity有什麼方法可以幫助解決這個問題?
我發現這兩個相關堆棧溢出的問題,但我還沒有找到我的答案在他們:
編輯:
I發現在ASP.NET中有一種叫做的匿名身份識別,這似乎解決了部分問題。
https://msdn.microsoft.com/en-us/library/91ka2e6a(v=vs.85).aspx
也許可以某種方式與ASP.NET身份集成?
EDIT2:正如在評論中指出,爲匿名鑑定的文件似乎已經過時,這是相當可能的,微軟不會把重點放在這麼多的未來。與ASP.NET Identity或其他基於OWIN的解決方案配合使用的解決方案是首選。
恐怕身份在這裏幫不了你。這裏沒有內置的功能 - 你必須自己想出大部分的東西。但是,您可以使用一些OWIN Cookie中間件來處理聲明和Cookie。 – trailmax
我已經完成用OWIN身份驗證Cookie。相關的部分可以在這裏看到:https://github.com/trailmax/OwinADAuthentication/blob/master/ActiveDirectoryAuthentication/Models/AdAuthenticationService.cs#L82 – trailmax
@trailmax:感謝您的回覆。我喜歡ASP.NET Identity中的大部分功能並計劃使用它們,因此我更關注如何將這些訪客用戶集成到ASP.NET Identity框架中。 –