Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Web API-令牌_C#_Asp.net Mvc_Wcf_Asp.net Web Api_Token - Fatal编程技术网

C# Web API-令牌

C# Web API-令牌,c#,asp.net-mvc,wcf,asp.net-web-api,token,C#,Asp.net Mvc,Wcf,Asp.net Web Api,Token,我的MVC应用程序可以访问我的WEB API 要访问WEB API,必须通知“令牌” WEB API中有一个生成令牌的按钮 如何使Web API应用程序只接受MVC应用程序生成的令牌而不使用数据库? 我让MVC生成令牌(GUID+日期)并将该令牌传递给Web API,以验证日期是否在30秒内。如果在该期间内,我认为令牌是有效的。< /P> byte [] data = Convert.FromBase64String ( token) ; When DateTime = DateTime.Fro

我的MVC应用程序可以访问我的WEB API

要访问WEB API,必须通知“令牌”

WEB API中有一个生成令牌的按钮

如何使Web API应用程序只接受MVC应用程序生成的令牌而不使用数据库?

我让MVC生成令牌(GUID+日期)并将该令牌传递给Web API,以验证日期是否在30秒内。如果在该期间内,我认为令牌是有效的。< /P>
byte [] data = Convert.FromBase64String ( token) ;
When DateTime = DateTime.FromBinary ( BitConverter.ToInt64 (date, 0 ) ) ;

if (when < DateTime.UtcNow.AddSeconds (-30 ) )
{
    return false;
}
byte[]data=Convert.FromBase64String(令牌);
当DateTime=DateTime.FromBinary(BitConverter.ToInt64(日期,0))时;
如果(当

但是,这是可行的,任何报告的与日期连接的GUID都将是有效的我需要让我的web API准确地知道哪个令牌是由MVC应用程序生成的。

您可以使用双向哈希对令牌进行加密,然后在服务器端对其进行解密。或者换句话说,以不明显的方式操纵字符串,然后在服务器端执行相反的操作。这将防止有人欺骗您的令牌。这有很多细节

我建议你看看JWT,如果还没有完成的话,msdn已经为此提供了一些产品。优点是它不会保留任何内容,而且是安全的。