C# 使用Identity 2.0在MVC应用程序和WCF服务之间传递身份验证

C# 使用Identity 2.0在MVC应用程序和WCF服务之间传递身份验证,c#,wcf,authentication,asp.net-identity-2,asp.net-mvc-5.2,C#,Wcf,Authentication,Asp.net Identity 2,Asp.net Mvc 5.2,我已经创建了一个在IIS中运行的WCF服务,并在网站上发布 我还有一个MVC应用程序,它使用Identity 2.0对我的用户进行身份验证和授权,该应用程序连接到一个包含用户信息的SQL Server数据库。此应用程序使用WCF服务 我想知道的是,是否可以在MVC应用程序中使用来自已验证用户的用户凭据来调用WCF服务,如果可以,这是最好的做法。我终于找到了这个问题的答案 从asp.net mvc应用程序调用web服务时,您可以按如下方式传递cookie: var request = HttpC

我已经创建了一个在IIS中运行的WCF服务,并在网站上发布

我还有一个MVC应用程序,它使用Identity 2.0对我的用户进行身份验证和授权,该应用程序连接到一个包含用户信息的SQL Server数据库。此应用程序使用WCF服务


我想知道的是,是否可以在MVC应用程序中使用来自已验证用户的用户凭据来调用WCF服务,如果可以,这是最好的做法。

我终于找到了这个问题的答案

从asp.net mvc应用程序调用web服务时,您可以按如下方式传递cookie:

 var request = HttpContext.Current.Request;
 var cookie = request.Cookies.Get("IdentityCookie");
 var ticket = cookie.Value;
请注意,在这一行
var cookie=request.Cookies.Get(“IdentityCookie”)
中,它在您的情况下不起作用,因为我重命名了cookie,如果您没有重命名cookie,请替换“.AspNet.ApplicationCookie”的“IdentityCookie”,否则只替换为您的cookie名称

(在我的例子中,我有一个类在每个请求中自动发送消息头,cookie放在该头中,您可以做类似的事情)

然后,您只需要在WCF端创建一个消息检查器,以便在调用服务之前将每个请求传递给该检查器。在该检查器中,您可以检查用户是否经过身份验证


它解决了我的问题,我希望这能有所帮助。

你找到关于这个问题的答案了吗?仍然在寻找它,不幸的是,也许会有一笔赏金?好吧,这些信息是有价值的,虽然,这似乎没有遵循最佳做法(如果有),并且它只部分回答了我需要的,但无论如何,谢谢!