我有一个场景,我想要授权我的web api,这是不同应用程序的一部分。
假设我有一个单页应用程序" A"。现在" A"想要在应用程序中调用api" B"通过ajax或angulars $ http。
现在要做到这一点,我可以在应用程序中创建一个web api" A"这将返回我申请的令牌" B"当通过ajax调用并将该令牌保存在浏览器会话存储中时。
我可以在我的应用程序中使用此代码" A" web api给我回复令牌
string authority = "https://adfs.corp.adfssample.com/adfs";
string resourceURI = "https://adfssample.com/OWIN-ADAL-ADFS-WebMVC";
string clientID = "82A2A9DE-131B-4837-8472-EDE0561A0EF6";
string clientReturnURI = "http://anarbitraryreturnuri/";
var ac = new AuthenticationContext(authority, false);
var ar = await ac.AcquireTokenAsync(resourceURI, clientID, new Uri(clientReturnURI), new AuthorizationParameters(PromptBehavior.Auto, new WindowInteropHelper(this).Handle));
string authHeader = ar.CreateAuthorizationHeader
现在每个ajax调用Application" B"会在标题中包含此标记。