我正在开发一个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。