Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.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 web Api服务对ASP.NET MVC web应用程序中的用户进行身份验证_Asp.net_Asp.net Mvc_Web Services_Asp.net Web Api - Fatal编程技术网

通过调用外部ASP.NET web Api服务对ASP.NET MVC web应用程序中的用户进行身份验证

通过调用外部ASP.NET web Api服务对ASP.NET MVC web应用程序中的用户进行身份验证,asp.net,asp.net-mvc,web-services,asp.net-web-api,Asp.net,Asp.net Mvc,Web Services,Asp.net Web Api,我计划使用ASP.NETWebAPI创建一个RESTfulWeb服务。许多ASP.NET MVC web应用程序和可能的本地应用程序将使用该服务。该服务将使用ASP.NET标识来授权请求/用户。通过在每个请求中传递一个令牌,我可以看到我将如何在本机应用程序中使用该服务 我的问题是,对于任何使用该服务的ASP.NET MVC应用程序,我如何在向该服务发出请求后将用户标记为已登录 这是我想要的,可以吗 用户未登录,已重定向到登录页面 用户提交在应用程序中调用MVC控制器的表单 控制器调用web服务

我计划使用ASP.NETWebAPI创建一个RESTfulWeb服务。许多ASP.NET MVC web应用程序和可能的本地应用程序将使用该服务。该服务将使用ASP.NET标识来授权请求/用户。通过在每个请求中传递一个令牌,我可以看到我将如何在本机应用程序中使用该服务

我的问题是,对于任何使用该服务的ASP.NET MVC应用程序,我如何在向该服务发出请求后将用户标记为已登录

这是我想要的,可以吗

用户未登录,已重定向到登录页面 用户提交在应用程序中调用MVC控制器的表单 控制器调用web服务 web服务返回用户的id、名称和角色? 这就是我被卡住的地方:ASP.NET MVC web应用程序然后将用户标记为已登录整个MVC web应用程序。该角色将在任何控制器/操作的任何授权属性中使用。ASP.NET MVC web应用程序还可以通过cookie记住用户,并在将来自动登录。
要设置cookie,您只需要:

FormsAuthentication.SetAuthCookie(USERNAME, true /*rememberMe*/);

这将解决您的身份验证问题。授权——确定用户能做什么和不能做什么——是另一回事。您需要缓存用户所处的角色,并根据需要进行检查。

没什么大不了的,但这是ASP.NET MVC,不是ASP MVC。谢谢,我已经更正了。我认为您所做的是可能的。当MVC应用程序从webapi调用获得肯定/肯定响应时,在MVC应用程序的控制器操作中设置cookie。但是,您可能需要考虑删除Cookie并在WebAPI侧设置一些东西,如生成的令牌,然后在MVC应用程序上的每个请求上使用此令牌来检查授权。有点像单一登录解决方案的前身。