Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.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
Asp.net mvc 用于MVC流的OAuth 2.0_Asp.net Mvc_Asp.net Web Api_Oauth 2.0 - Fatal编程技术网

Asp.net mvc 用于MVC流的OAuth 2.0

Asp.net mvc 用于MVC流的OAuth 2.0,asp.net-mvc,asp.net-web-api,oauth-2.0,Asp.net Mvc,Asp.net Web Api,Oauth 2.0,我正在使用OAuth 2.0 for MVC,可以在这里找到: (这是指向一些light文档的链接,其中包含指向项目下载的链接) 我想弄清楚这个流程是如何运作的。看起来是这样的: 从RequestToken控制器方法获取RequestToken 然后,控制器将请求令牌传递到OAuthServiceBase.Instance.AccessToken中。最后转到DemoService类,它继承了抽象的OAuthServiceBase类。此方法使用RequestToken对用户名进行散列,然后将其与密

我正在使用OAuth 2.0 for MVC,可以在这里找到:

(这是指向一些light文档的链接,其中包含指向项目下载的链接)

我想弄清楚这个流程是如何运作的。看起来是这样的:

  • 从RequestToken控制器方法获取RequestToken
  • 然后,控制器将请求令牌传递到OAuthServiceBase.Instance.AccessToken中。最后转到DemoService类,它继承了抽象的OAuthServiceBase类。此方法使用RequestToken对用户名进行散列,然后将其与密码进行比较(密码也已使用RequestToken进行散列和salt)。如果它们匹配,它将发出AccessToken。这是一个示例逻辑——这里有一条说明,在实际应用程序中,您应该获取用户的凭据 这让我对以下几点感到困惑:

  • 我不明白RequestToken是干什么用的。RequestToken在5分钟后过期-因此,即使示例逻辑将用户名和密码散列加上盐,我也看不到任何可能的方式将用户的散列密码加上盐
  • 尽管有上述规定,我在这个应用程序中看不到任何添加密码散列的机制。我错过什么了吗?我不想在客户端持久地存储salt,这样就不必在db中存储未加密的密码了吗?如果我有一个持久的salt,我可以将hash&salt密码存储在db中,将salt存储在客户端,然后将hash密码传入以进行身份验证
    正如您可能知道的那样,我对编写一般的身份验证代码还不熟悉。我知道我在这里遗漏了一些东西,我只是不知道它是什么:)

    Oauth用于让第三方访问您的程序,它主要用于
    api的

    RequestToken不应用于限制用户名、密码或其他任何东西。当您与web服务通信时,您将从Oauth获得一个RequestToken。请求令牌的时间跨度为5分钟,之后您应该请求一个新令牌

    使用RequestToken的主要优点是分离关注点。在图中,只有OAuth2授权服务器必须知道用户名和密码。GoogleUserInfo服务知道特定操作的一组有效令牌。在这种情况下,请求帐户信息

    从google的oauth实现中检查此图像。我希望这一切都清楚