C# asp.net mvc 5和oauth2登录

C# asp.net mvc 5和oauth2登录,c#,asp.net,asp.net-mvc,oauth-2.0,C#,Asp.net,Asp.net Mvc,Oauth 2.0,我正在从事一个asp.NETMVC5项目,该项目将使用meetup.comOAuth2API登录。不幸的是,我遇到了一个问题,我的webapp成功重定向到meetup登录页面,我可以点击“允许”,但随后它将停止,因为AuthenticationHandler检测到“状态”字段的属性为null,页面上没有显示任何内容。我使用的是被动AuthenticationMode和AFAIK MEETUP.com API不使用“状态”字段,所以我不知道如何防止AuthenticationHandler返回NU

我正在从事一个asp.NETMVC5项目,该项目将使用meetup.comOAuth2API登录。不幸的是,我遇到了一个问题,我的webapp成功重定向到meetup登录页面,我可以点击“允许”,但随后它将停止,因为AuthenticationHandler检测到“状态”字段的属性为null,页面上没有显示任何内容。我使用的是被动AuthenticationMode和AFAIK MEETUP.com API不使用“状态”字段,所以我不知道如何防止AuthenticationHandler返回NULL并在中间停止,因为它认为当没有“状态”开始时存在错误。以下是相关代码:

protected override async Task<AuthenticationTicket> AuthenticateCoreAsync()
    {
        AuthenticationProperties properties = null;

        try
        {
            string code = null;
            string state = null;

            IReadableStringCollection query = Request.Query;
            IList<string> values = query.GetValues("code");
            if (values != null && values.Count == 1)
            {
                code = values[0];
            }
            values = query.GetValues("state");
            if (values != null && values.Count == 1)
            {
                state = values[0];
            }

            properties = Options.StateDataFormat.Unprotect(state);
            if (properties == null)
            {
                return null; // the error here
            }
protectedoverride异步任务authenticateCoreAncync()
{
AuthenticationProperties=null;
尝试
{
字符串代码=null;
字符串状态=null;
IReadableStringCollection query=Request.query;
IList values=query.GetValues(“代码”);
if(值!=null&&values.Count==1)
{
代码=值[0];
}
values=query.GetValues(“状态”);
if(值!=null&&values.Count==1)
{
状态=值[0];
}
properties=Options.StateDataFormat.Unprotect(状态);
如果(属性==null)
{
return null;//此处的错误
}

找到了一个已经存在的可用的开源库


既然您的提供者不符合那里的工作流,为什么不修改/覆盖此行为?如果我这样做,代码将在其他地方返回null。我想知道如何使代码不需要state字段。下面是整个类:是的,您必须覆盖它所依赖的任何行为在该状态字段上。您希望使用不符合内置身份验证逻辑所依赖的提供程序,因此基本上可以保证您需要一些自定义工作。