我正在開發一個ASP.NET MVC應用程序(targetFramework 4.5),它提供用戶使用自定義身份驗證以及使用他們的Twitter帳戶登錄到網站。以下庫已引用RedisSessionStateProvider.cs與外部登錄鏈接
- Microsoft.Owin
- Microsoft.Owin.Host.Security
- Microsoft.Owin.Security
- Microsoft.Owin.Security.Cookies
- Microsoft.Owin。 Security.MicrosoftAccount
- Microsoft.Owin.Security.OAuth和
- Microsoft.Owin.Security.Twitter
當我點擊我的網頁上的twitter按鈕,它會到twitter站點,獲取我的憑據並返回到我的網站。這裏沒有問題。
我現在整合了RedisSessionStateProvider.cs來管理使用Redis的會話。我已經添加提供程序文件(RedisSessionStateProvider.cs),我有如下更新web.config文件:
<sessionState cookieless="false" customProvider="RedisSessionStateProvider" mode="Custom" timeout="20">
<providers>
<add name="RedisSessionStateProvider" port="6379" server="localhost" type="RedisProvider.SessionProvider.CustomServiceProvider" writeexceptionstoeventlog="true" />
</providers>
</sessionState>
Redis的服務器正在運行,如果我點擊Twitter的按鈕上的端口6379.監聽現在,現場帶我到Twitter的認證頁面,之後,從Twitter的成功認證,當回調方法
公共異步任務ExternalLoginCallback(字符串RETURNURL)
被觸發,該代碼
await AuthenticationManager.GetExternalLoginInfoAsync();
返回null。
如果我從配置文件中註銷sessionstate節點,一切工作正常,即GetExternalLoginInfoAsync()正確返回loginInfo。
我無法確定此問題的根本原因。任何人都可以請指導我解決這個問題?
謝謝, Hemant。